La notion d'héritage |
L'héritage (en anglais inheritance) est un principe propre à la programmation orientée objet,
permettant de créer une nouvelle classe à partir d'une classe existante. Le nom d'"héritage"
(pouvant parfois être appelé dérivation de classe) provient du fait que la classe dérivée (la classe nouvellement créée) contient les attributs et
les méthodes de sa super-classe (la classe dont elle dérive). L'intérêt majeur de l'héritage
est de pouvoir définir de nouveaux attributs et de nouvelles méthodes pour la classe dérivée, qui viennent
s'ajouter à ceux et celles héritées.
Par ce moyen on crée une hiérarchie de classes de plus en plus spécialisées. Cela a comme avantage
majeur de ne pas avoir à repartir de zéro lorsque l'on veut spécialiser une classe existante. De cette manière
il est possible d'acheter dans le commerce des librairies de classes, qui constituent une base, pouvant être spécialisées
à loisir (on comprend encore un peu mieux l'intérêt pour l'entreprise qui vend les classes de protéger les
données membres grâce à l'encapsulation...).
Hiérarchie des classes |
Il est possible de représenter sous forme de hiérarchie de classes, parfois appelée arborescence de classes, la relation de parenté qui existe entre les différentes classes. L'arborescence commence par une classe générale appelée superclasse (parfois classe de base, classe parent, classe ancêtre, classe mère ou classe père, les métaphores généalogiques sont nombreuses). Puis les classes dérivées (classe fille ou sous-classe) deviennent de plus en plus spécialisées. Ainsi, on peut généralement exprimer la relation qui lie une classe fille à sa mère par la phrase "est un" (de l'anglais "is a").
Héritage multiple |
Certains langages orientés objet, tels que le C++, permettent de faire de l'héritage multiple, ce qui signifie qu'ils offrent la possibilité de faire hériter une classe de deux superclasse. Ainsi, cette technique permet de regrouper au sein d'une seule et même classe les attributs et méthodes de plusieurs classes.