Table des matières

Héritage

Définition

L’héritage permet la définition de classes comme des extensions d’autres classes. Lorsqu’une classe hérite d’une autre classe, cela signifie qu’elle incorpore le fonctionnement interne de la classe dont elle hérite.


On dit que :

  • la classe « enfant » dérive de la classe « parent » ;
  • la classe « parent » est la classe de base ou superclasse de la classe « enfant » ;

La classe dérivée hérite des caractéristiques (attributs et méthodes) de sa classe de base, et par ce fait permet d’économiser beaucoup d’efforts de développement. En effet l’héritage apporte la possibilité de :

  • factoriser le code en le spécialisant (dans la classe mère) ;
  • réutiliser le code en le personnalisant (dans les classes enfants) ;

Parent-Enfant

Exemples dans la documentation Java


Aspects syntaxiques Java


Polymorphisme


Redéfinition (override)

Lorsqu’une méthode existe dans une super-classe et que la sous-classe nécessite que cette méthode se comporte différemment, il est possible de redéfinir la méthode dans la sous-classe (même nom, même signature).

Dans ce cas, c’est au moment de l’exécution, selon le type réel d’un objet que l’environnement décidera d’exécuter la méthode du sous-type ou celle du supertype (liaison retardée).

override

Transtypage (Cast)

À partir du moment où des variables peuvent être polymorphes, il est nécessaire de disposer d’un outil qui permet de forcer la reconnaissance d’un objet comme un sous-type précis alors qu’il est perçu comme un super-type par le formalisme du code.


Interrogation de type

Opérer un transtypage, c’est bien. Mais parfois on ignore jusqu’au moment de l’exécution le type effectif de l’objet concerné.

Java offre deux moyens pour obtenir une indication sur le type effectif de l’objet :