Vidéo: JAVA (Intermédiaire) - 22 - L'héritage en JAVA 2024
Héritage fait référence à une fonctionnalité de programmation Java qui vous permet de créer des classes dérivées d'autres classes. Une classe basée sur une autre classe hérite de l'autre classe. La classe héritée est la classe parent , la classe classe de base , ou la classe . La classe qui hérite est la classe enfant , la classe dérivée , ou la sous-classe .
Une sous-classe prend automatiquement tous les comportements et attributs de sa classe de base. Ainsi, si vous devez créer plusieurs classes pour décrire des types qui ne sont pas identiques mais qui ont de nombreuses fonctionnalités en commun, vous pouvez créer une classe de base qui définit toutes les entités communes. Ensuite, vous pouvez créer des sous-classes qui héritent des fonctionnalités communes.
Une sous-classe peut ajouter des fonctionnalités à la classe de base dont elle hérite en définissant ses propres méthodes et champs. C'est l'une des façons dont une classe dérivée se distingue de sa classe de base.
Une sous-classe peut également changer le comportement fourni par la classe de base. Une classe de base peut prévoir que toutes les classes qui en dérivent ont une méthode nommée play, par exemple, mais chaque classe est libre de fournir sa propre implémentation de la méthode play. Dans ce cas, toutes les classes qui étendent la classe de base fournissent leur propre implémentation de la méthode play.
Pour créer une sous-classe, vous utilisez le mot-clé extends sur la déclaration de la classe pour indiquer le nom de la classe de base. Le format de base d'une déclaration de sous-classe est le suivant:
public class NomClasse extends BaseClass {// le corps de la classe va ici}
La sous-classe hérite automatiquement du corps de la classe de base, donc les méthodes ou champs définis par la classe de base seront automatiquement inclus dans la sous-classe. Ainsi, le corps de classe d'une sous-classe inclut uniquement les méthodes ou champs qui différencient la sous-classe de sa classe de base.
Par exemple, supposons que vous ayez une classe nommée Ball qui définit une balle de base, et que vous souhaitiez créer une sous-classe nommée BouncingBall qui ajoute la possibilité de rebondir. Vous pouvez le faire comme ceci:
public class BouncingBall étend Ball {public void bounce () {// la méthode bounce}}
Voici d'autres détails importants sur la création de sous-classes:
-
Une sous-classe hérite de tous les membres de sa classe de base. Cependant, les constructeurs sont et non considérés comme des membres. Par conséquent, une sous-classe pas hérite des constructeurs de sa classe de base.
-
La visibilité (publique ou privée) des membres hérités de la classe de base est la même dans la sous-classe.Cela signifie que vous ne pouvez pas accéder à partir des méthodes de la sous-classe ou des champs déclarés comme privés dans la classe de base.
-
Vous pouvez remplacer une méthode en déclarant un nouveau membre avec la même signature dans la sous-classe.
-
Un type spécial de visibilité, appelé protected, masque les champs et les méthodes des autres classes, mais les met à la disposition des sous-classes.
-
Vous pouvez ajouter d'autres méthodes ou champs (privé, public ou protégé) à une sous-classe.