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);
...
