4.3 Redéfinition de méthodes dans les
classes dérivées
- Redéfinition possible des méthodes publiques héritées (en
anglais overriding)
- Peut être annotée par @Override.
- Liaison dynamique :
- Redéfinition la plus proche dans l’arbre
d’héritage invoquée
- Même à travers une référence d’une classe
parente
- Accès explicite à une méthode redéfinie de la classe
parente par super
précédent suivant
Une classe peut redéfinir les méthodes publiques dont elle
hérite (en anglais overriding). Dans ce cas la
méthode peut être annotée avec l’annotation @Override. Java réalise une liaison dynamique lors des
appels de méthodes, ainsi les objets des classes dérivées ont leur comportement
propre même lorsqu’ils sont utilisés à travers une référence de classe
parente.
Lorsqu’il n’y a pas de définition dans la classe
feuille, c’est la définition dans la classe la plus proche en remontant
dans l’arbre d’héritage qui est invoquée. Cette liaison dynamique
est réalisée même lorsque l’on utilise la méthode à travers une référence
d’une classe parente. Depuis une classe dérivée, l’accès explicite
à une méthode redéfinie de la classe parente est possible en utilisant le mot
réservé super. Ainsi dans nos exemples
précédents, la méthode toString() est redéfinie
dans la classe dans la classe Enseignant.
Christian Bac, Denis Conan, Télécom
SudParis, CSC 4002, Octobre 2015
|