Accueil
 Sommaire du cours
 1  Introduction à Java
 2  Concepts de bases de Java
 3  Classes et objets en Java
 4  Généralisation spécialisation en Java
 4.1  Généralisation spécialisation
 4.2  Polymorphisme
 4.3  Redéfinition de méthodes dans les classes dérivées
 4.3.1  Polymorphisme et liaison dynamique avec \texttt toString
 4.4  Héritage, membres et visibilité
 Questions
 4.5  Classes abstraites
 4.6  Exemple de classe Abstraites
 4.7  Interfaces
 5  Organisation des sources Java
 6  API Java
 7  Exceptions en Java
 8  Concepts objets avancés en Java
 Bibliographie

 Contacts

W3C validator

Département INF  
 Conception et programmation orientées objet


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