Polymorphisme

En informatique, le polymorphisme est l'idée d'autoriser le même code a être utilisé avec differents types, ce qui permet des implémentations plus abstraites et générales.

polymorphisme par sous-typage (dérivation)

L'idée est de partir d'un type et de le modifier. Par exemple, en C++ on peut créer une classe de base, puis faire des classes dérivées.


Concept associé à l'approche orientée objet.

class Forme {
 public:
    virtual float Aire() = 0;
 }
 
 class Carre:public Forme {
 public:
    virtual float Aire() { return m_cote*m_cote; }
 private:
    float m_cote;
 }
 
 class Cercle:public Forme {
 public:
    virtual float Aire() { return 3.1415926535*m_rayon*m_rayon; }
 private:
    float m_rayon;
 }
 

Grâce aux fonctions virtuelles, on peut faire un algorithme en n'utilisant que la classe de base qui va automatiquement appeler les fonctions des classes dérivées:

float AireTotal(Forme* tabl,int nb) {
    float s=0;
    for(int i = 0;i<nb; i++) {
       s+= tabl[i].Aire(); // le programme sait automatiquement quelle fonction appeler
    }
    return s;
 }
 
 ...
 Forme* tableau[3] = {new Carre,new Cercle,new Carre};
 AireTotal(tableau,3);
 ...
 

See also: Polymorphisme, C plus plus, Informatique, Fonction virtuelle