Héritage (informatique)

Exemple basique de diagramme UML représentant une relation d'héritage

En programmation orientée objet, l’héritage est un mécanisme qui permet, lors de la déclaration d’une nouvelle classe, d'y inclure les caractéristiques d’une autre classe.

Principe

L'héritage établit une relation de généralisation-spécialisation qui permet d'hériter dans la déclaration d’une nouvelle classe (appelée classe dérivée, classe fille, classe enfant ou sous-classe) des caractéristiques (propriétés et méthodes) de la déclaration d'une autre classe (appelée classe de base, classe mère, classe parent ou super-classe).

En déclarant une nouvelle classe B par héritage de la classe A, ajoutant de nouveaux membres, on peut alors dire que :

Lorsqu'une classe fille hérite d'une classe mère, elle peut alors utiliser les caractéristiques de la classe mère.

Par exemple, on déclare d'abord la classe de base Vehicule puis, à partir de celle-ci, on déclare les classes dérivées Automobile et Avion qui héritent alors des caractéristiques de la classe de base Vehicule.

On parle d'héritage, car le principe est en quelque sorte le même que celui d’un arbre généalogique; tout comme l'enfant hérite des caractéristiques du parent, les classes « filles » héritent des caractéristiques de leur(s) « mère(s) ». Ce principe est basé sur une classe dont les « filles » héritent des caractéristiques de leur(s) « mère(s) ».

En programmation orientée objet, l'héritage permet donc de réutiliser (décomposer un système en composants) et d'adapter les objets grâce au polymorphisme.

Particularités des classes

Classe abstraite

Visibilité des membres

Pour qu'une classe fille puisse hériter des propriétés de la classe mère, il faut que les propriétés de la classe mère possèdent des attributs de visibilité compatibles. Il existe dans la plupart des langages trois niveaux de visibilité :

Voir aussi