Polymorphisme                        

Polymorphisme

           

Il n'y a aucune connaissance nouvelle dans cette page, à part la notion de polymorphisme qui y est illustrée.

On considère le programme suivant. Les classes Orateur, Grenouille et Fourmi suivent le schéma ci-dessous, où une flèche signifie : "hérite de" :


 class Orateur {
  String action(){
      return  "s'exprime";
    }
}

class  Grenouille extends  Orateur{
   String action(){
      return  "coasse";
    }
}

class  Fourmi extends  Orateur{
  String action() {
      return  "croonde";
    }
}

class  EssaiOrateur {
  public static void  main(String[] argv) {
    	Orateur orateur;

     	orateur = new  Orateur();
     	System.out.println("Orateur " + orateur.action());
 		orateur = new  Grenouille()
     	System.out.println("Grenouille " + orateur.action());
		orateur = new Fourmi();
     	System.out.println("Fourmi " + orateur.action());
    }
}
Le principe de la liaison dynamique explique la sortie suivante du programme :
Orateur s'exprime
Grenouille coasse
Fourmi croonde
On voit ainsi qu'un "Orateur" peut se comporter différemment selon qu'il s'agit en fait d'un "Orateur" de la classe Orateur ou bien de la classe Grenouille, ou bien de la classe Fourmi. Un "Orateur" est polymorphe, il peut prendre la forme d'un "pur Orateur", d'une Grenouille ou d'une Fourmi.

Le polymorphisme est une conséquence directe de la liaison dynamique.

Le fichier EssaiOrateur.java

© Irène Charon Télécom ParisTech 2010