Une classe est une construction d'un langage de programmation qui représente un type non paramétré. Les types représentés par des classes ne sont pas mutuellement exclusifs ; en fait les classes forment une arborescence, en réalité un graphe orienté sans cycle (en Anglais : directed acyclic graph) (DAG), le graphe d'héritage.
Une classe (et donc le type correspondant) est créée par
spécialisation d'une ou plusieurs classes existantes. Une
classe créée par spécialisation d'une autre classe
(et
peut-être d'autres classes aussi) est une sous-classe de
.
On dit aussi que
hérite de
et que
est
dérivée de
. La classe
est appelée la classe mère
de
. Le graphe d'héritage représente donc la relation de
sous-ensemble sur les types.
Un objet est toujours l'instance directe d'une seule classe.
Cette classe est la classe de l'objet. Un objet instance
directe d'une classe est aussi instance (indirecte) de toutes les
classes ancêtres de
.
L'héritage peut être simple ou multiple selon le langage
de programmation. Si l'héritage est simple, une classe peut être
dérivée d'au plus une autre classe et le graphe d'héritage est un
arbre.
De plus,
si l'héritage est simple, deux types et
représentés par des
classes sont forcément apparentées de l'une des trois façons suivantes :
En revanche, si l'héritage est multiple, deux classes et
peuvent avoir des éléments en commun sans que
et
soient apparentées
par héritage. Il suffit qu'il existe une classe
qui hérite
(même indirectement) à la fois de
et de
. Les éléments de
sont alors communs à
et
.
Irene DURAND