En programmation objet, on appele héritage
la re-utilisation d'attributs d'une classe existante
pour en dériver une nouvelle de manière incrémentale.
La classe existante est appelée
classe parente ou super-classe, alors que la nouvelle est dite
dérivée ou
sous-classe. La classe dérivée, comme
toute classe, décrit le comportément des objets futurs, mais
cette description est incrémentale: on ne donne que les modifications
ou extensions
par rapport aux comportéments et données de la super-classe.
Les variables et méthodes de la super-classe sont implicitement
présentes dans la sous-classe. Pendant l'héritage,
il est possible d'ajouter des nouvelles
définitions de variables ou de méthodes dans la sous-classe, ou au
contraire,
de fournir
du code différent pour une méthode en provenance de la super-classe.
Tous les attributs repris dans la sous-classe sans modification sont
dit hérités de la super-classe; toutes les méthodes
changées dans la sous-classe sont dites re-définies.
L'héritage entre classes se traduit pas le partage d'attributs. La sous-classe partage avec sa super-classe le code, pour les méthodes héritées, et les valeurs initiales, pour les variables.