Next: Les langages objets
Up: Les concepts objets
Previous: Les classes et les
L'héritage capture la relation de généralisation, il facilite ainsi la
modélisation des objets et la modularité et la réutilisation du code.
Définition 3.9
Héritage simple : mécanisme de transmission des propriétés d'une
classe vers une sous-classe.
Définition 3.10
Héritage multiple : mécanisme par lequel une sous-classe hérite des
propriétés de plus d'une super-classe.
L'héritage permet d'éviter la redondance des définitions des attributs
et des opérations.
Remarques :
- Attention aux conflits dans le cas de l'héritage multiple.
- Il peut être pratique de ne pas définir d'opération.
- Il peut être pratique de redéfinir une opération.
Définition 3.11
Classe abstraite = attributs + signature des opérations.
Une classe abstraite ne peut pas être instanciée. Elle doit être la
sur-classe d'une autre, dans laquelle les opérations devront être
implémentées.
Définition 3.12
Surcharge : redéfinition d'une opération avec un code différent.
Définition 3.13
Polymorphisme : faculté d'une opération à pouvoir s'appliquer à des
objets de classes différentes.
Remarques : le polymorphisme complique le déroulement d'un
programme. Pour une opération polymorphe, quelle est l'implémentation
à exécuter ? (c-a-d quelle est la classe réelle de l'objet ?). Ce
choix peut être décidé à la compilation où à l'exécution.
Définition 3.14
Liaison dynamique : mécanisme de sélection de code d'une opération à
l'exécution en fonction de la classe de l'objet receveur.
Remarque : la liaison dynamique est difficilement compatible avec
un typage statique fort, pourtant garant de sûreté à l'exécution.
Exercice 3.6
Le propriétaire est un client qui ne paye pas, et qui cherchera à
contrôler l'honneteté des clients et de ses opérateurs. Donnez un
graphe d'héritage et de la surcharge d'opération.
Next: Les langages objets
Up: Les concepts objets
Previous: Les classes et les
Alain GRIFFAULT
2000-01-05