L’héritage
CHAPITRE 12
258
Déjà sur cet exemple, on voit apparaître la principale différence entre héritage et
composition :
• l’héritage conduit à une relation de type « est » : ici cd est un cercle, mais comme il hérite
de Point, c’est aussi un Point et on peut lui appliquer directement les méthode de Point ;
• la composition peut conduire à une relation de type « a » : ici, cc a un centre de type Point,
mais ce n’est pas un objet de type Point : on ne peut donc pas lui appliquer les méthodes de
la classe Point. On pourrait espérer les appliquer à son centre (de type Point), mais comme l’attribut correspondant est privé, ce n’est pas possible.
Nous verrons que cette relation « est » sera à la base de ce que l’on nomme le polymorphisme.
5 Dérivations successives
Jusqu’ici, nous n’avons raisonné que sur deux classes à la fois et nous parlions généralement
de classe de base et de classe dérivée. En fait, comme on peut s’y attendre :
• d’une même classe peuvent être dérivées plusieurs classes différentes,
• les notions de classe de base et de classe dérivée sont relatives puisqu’une classe dérivée
peut, à son tour, servir de classe de base pour une autre.
Autrement dit, on peut très bien rencontrer des situations telles que celle représentée par
l’arborescence suivante (ici, les flèches vont de la classe dérivée vers la classe de base ; on
pourra rencontrer la situation inverse) :
D est dérivée de B, elle-même dérivée de A. On dit souvent que D dérive de A. On dit aussi que
D est une sous-classe de A ou que A est une super-classe de D. Parfois, on dit que D est une
descendante de A ou encore que A est une ascendante de D. Naturellement, D est aussi une
descendante de B. Lorsqu’on a besoin d’être plus précis, on dit alors que D est une descendante directe de B.
A
B
C
D
E
F
G
Précédent

- 281/370

Suivant