EPFL
Faculté Informatique & Communications
Cours d'informatique

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 $)