Académique Documents
Professionnel Documents
Culture Documents
Lion
Tigre
Ours
Soit Clarance un objet instance de la classe Lion. Clarance peut se substituer des objets de la classe Animal
Polymorphisme et informatique
En informatique, le polymorphisme dsigne un concept de la thorie des types, selon lequel un nom dobjet peut dsigner des instances de classes diffrentes issues dune mme arborescence Animal
Lion
Tigre
Ours
Soit Clarance le nom dun objet de type Animal. Clarance peut donc dsigner des instances des classes Animal, Lion, Tigre et Ours.
Exemple en JAVA
class Animal {} class Lion extends Animal { } class Tigre extends Animal { } class Ours extends Animal { } public class Essai { public static void main (String args []) {Animal clarance; Lion l; clarance = new Lion(); clarance = new Tigre(); clarance = new Lion(); clarance = new Animal(); Lion l = new Animal (); } }
Dclaration des types
Lion Dormir()
Tigre Dormir()
Ours Dormir()
Tigre Dormir()
Ours Dormir()
Clarance tant une instance de type Lion, nous dsirons faire manger le lion Manger() :Soigneur
Clarance : Lion
Ceci nest pas possible en conception, car lopration manger() nest pas dfinie dans la classe Animal et que Clarance est de type Animal. Or clarance est bien un objet de la classe Lion, il faut donc transformer le type de lobjet clarance.
Tigre Dormir()
Ours Dormir()
La mthode Dormir() est ralise dans la classe Animal, elle est donc redfinie dans les classes Lion, Tigre et Ours. On parle de redfinition de mthode.
:soigneur
clarance:Lion
((Animal)clarance).dormir( ); }
affiche() { identifie(); afficher (" Mes coordonnes sont : " CoordonneX + " " + CoordonneY);} identifie () { Afficher " Je suis un point " }
Pointcolor
- Couleur : entier <<constructeur>> + Pointcolore (Y,Y,Z:entier) + <<selecteur>> + identifie ()
Traduction en JAVA
class Point { private int coordonneeX, coordonneeY; public Point (int x, int y) { coordonneeX=x;coordonneeY=y;} public void affiche() { identifie(); System.out.println ("Mes coordonnees sont : " + coordonneeX + " " + coordonneeY);} public void identifie() { System.out.println ("Je suis un point ");} }
class Pointcolore extends Point { private int couleur; public Pointcolore (int x, int y, int z) { super(x,y); couleur = z; } public void identifie () { System.out.println ("Je suis un point colore de couleur " + couleur);} } public class essai1 { public static void main (String args []) { Pointcolore pc = new Pointcolore (8,6,2); pc.affiche(); } }
Surcharge doprations
Certains langages autorisent lemploi dun mme nom pour dsigner une famille doprations, avec un profil de paramtres diffrent pour chaque opration.
Enfant
Manger() Manger( Lentement : Boolen) Manger (Lentement : Boolen, Comme_un_cochon : boolen)
Tigre Dormir()
Ours Dormir()
La mthode Dormir(dure) est hrite. Aussi la mthode Dormir() surcharge (surdfinie) cette dernire.
Animal Ami(Animal)
Lion
Ami(Lion)