Mini-Référence :
POO : Polymorphisme
Le polymorphisme d'inclusion permet à des données de
types différents d'utiliser un même code, pour autant que ces types
soit liés par une relation de sous-typage (comme l'héritage).
En clair, une instance peut avoir plusieurs «formes»
(poly-morph) : celle de la (sous-)classe dont elle est une instance,
mais aussi celles moins spécifiques de ses super-classes.
Ceci est souvent utilisé dans des collections hétérogènes,
collections de pointeurs vers un type «super-classe», mais dont les
instances réelles sont différentes instances polymorphiques de
sous-classes et peuvent donc ainsi être vues comme des instances de
«super-classes» tout en gardant leurs propriétés fines d'instances
de «sous-classes».
Pour mettre en œuvre le polymorphisme en C++, on a besoin de deux
mécanismes :
- les méthodes virtuelles (les «propriétés fines» des
différents types, mentionnées ci-dessus) ;
- les références ou pointeurs (sur l'objet polymorphe).
Pour en savoir plus sur les
méthodes virtuelles,
voir ici [lien externe].
Pour exploiter au maximum la notion d'abstraction, on peut de plus
grâce au polymorphisme, créer des classes abstraites.
Ce sont des classes dont on ne peut pas créer d'instances mais qui servent
plutôt à décrire de façon générale des propriétés attendues d'une classe.
Cela se fait en définissant des méthodes virtuelles
pures.
Pour en savoir plus sur les méthodes virtuelles pures et les classes abstraites, voir ici [lien externe].
Dernière mise à jour :
$Date: 2009-09-11 17:10:52 +0200 (Fri, 11 Sep 2009) $
($Revision: 25 $)
|