L’héritage multiple
297
2.5 Interface et classe dérivée
La notion d’interface est totalement indépendante de l’héritage. Une classe dérivée peut, à
son tour implémenter une interface ou plusieurs :
interface I
{ méthode f (entier)
méthode g
}
classe A { ..... }
classe B dériveDe A implémente I
{ // les méthodes f et g doivent soit être déjà définies dans A
// soit définies dans B
}
On peut même rencontrer cette situation, dans laquelle on est certain que B implémente les
deux interfaces I1 et I2 :
interface I1 { ..... }
interface I2 { ..... }
classe A implémente I1 { ...... }
classe B dériveDe A implémente I2 { .....}
// ici, B implémente I1 (par
// héritage de A), et I2
3 L’héritage multiple
Jusqu’ici, nous n’avons considéré que ce que l’on nomme l’héritage simple dans lequel une
classe dérive d’une seule classe de base. Certains langages offrent la possibilité dite
d’héritage multiple, dans laquelle un classe peut hériter simultanément de plusieurs classes
de base. L’héritage multiple reste cependant peu usité car :
• peu de langages en disposent,
• il entraîne des difficultés de conception des logiciels. Il est, en effet, plus facile de
« structurer » un ensemble de classes selon un « arbre » (cas de l’héritage simple) que selon
un « graphe orienté sans circuit » (cas de l’héritage multiple).
Ici, nous nous contenterons de le présenter succinctement.
L’héritage multiple permet donc de gérer des dépendances telles que :
Ici, la classe PointColoré hérite à la fois de la classe Point et de la classe Couleur.
Point
Couleur
PointColoré
297
2.5 Interface et classe dérivée
La notion d’interface est totalement indépendante de l’héritage. Une classe dérivée peut, à
son tour implémenter une interface ou plusieurs :
interface I
{ méthode f (entier)
méthode g
}
classe A { ..... }
classe B dériveDe A implémente I
{ // les méthodes f et g doivent soit être déjà définies dans A
// soit définies dans B
}
On peut même rencontrer cette situation, dans laquelle on est certain que B implémente les
deux interfaces I1 et I2 :
interface I1 { ..... }
interface I2 { ..... }
classe A implémente I1 { ...... }
classe B dériveDe A implémente I2 { .....}
// ici, B implémente I1 (par
// héritage de A), et I2
3 L’héritage multiple
Jusqu’ici, nous n’avons considéré que ce que l’on nomme l’héritage simple dans lequel une
classe dérive d’une seule classe de base. Certains langages offrent la possibilité dite
d’héritage multiple, dans laquelle un classe peut hériter simultanément de plusieurs classes
de base. L’héritage multiple reste cependant peu usité car :
• peu de langages en disposent,
• il entraîne des difficultés de conception des logiciels. Il est, en effet, plus facile de
« structurer » un ensemble de classes selon un « arbre » (cas de l’héritage simple) que selon
un « graphe orienté sans circuit » (cas de l’héritage multiple).
Ici, nous nous contenterons de le présenter succinctement.
L’héritage multiple permet donc de gérer des dépendances telles que :
Ici, la classe PointColoré hérite à la fois de la classe Point et de la classe Couleur.
Point
Couleur
PointColoré
