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 croondeOn 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.
© Irène Charon Télécom ParisTech 2010