Polymorphisme
La surcharge
Il est évidemment possible de définir plusieurs méthodes (surcharge) de même nom, mais avec des paramètres qui seront différents (en nombre et/ou type) dans une classe.
Par exemple:
Redéfinition
De même, il sera possible de redéfinir une méthode dans une classe dérivée de même nom et de même type de paramètres.
Par exemple la classe Doublet
La classe Triplet va redéfinir la méthode addition de la classe Doublet avec un paramètre supplémentaire et faire appel à la classe Doublet pour faire le calcul:
super est une fonction permettant de lancer la méthode initiale, donc celle de la classe Doublet.
Ici, nous lançons la méthode de Doublet permettant de faire l'addition de deux valeurs:
Nous calculons donc x+y, puis le résultat de x+y avec la valeur de z.
return super.addition (x,y) + z fonctionnera aussi ici, mais cette solution ne serait pas bonne. Car nous refaisons ce que sait déjà faire la classe Doublet en tapant + z. Or si le code vient à évoluer dans la méthode addition, il ne faudra pas oublier de modifier à la fois Doublet et Triplet. Car cette solution est équivalent à dupliquer le code addition de la classe Doublet, rendant la maintenance plus difficile. Ce n'est pas le cas avec la solution présentée ci-dessus.
Et voici le code de lancement: