L'héritage est le système de programmation orientée objet qui permet aux objets de prendre en charge des opérations définies par des types antérieurs sans avoir à fournir leur propre définition. C'est le vecteur majeur du polymorphisme en programmation orientée objet.

L'héritage est la principale méthode par laquelle les systèmes orientés objet fournissent le polymorphisme.

Lorsqu'une classe Sub hérite d'une autre classe (ou d'un autre objet, comme dans Self ou JavaScript) Base, Sub partagera tout ou partie des opérations (y compris éventuellement l'accès aux données et le stockage) fourni par Base. Il arrive généralement que Sub reçoive au moins l'interface publique complète de Base afin de permettre à tout objet de type Sub de se substituer à un objet de type {{X7 }} dans tout code écrit pour fonctionner sur des objets de type Base (reportez-vous au Principe de substitution Liskov).

Cette facilité est orthogonale au type de système de type utilisé, au régime de liaison des fonctions (tardif ou précoce), à l'existence ou non d'un régime de confidentialité, ou encore à l'évaluation (paresseuse ou faible).

Exemple d'héritage sur un diagramme UML:

Voir Héritage sur Wikipedia.