Maison >Java >javaDidacticiel >Les sous-classes Java héritent-elles de champs privés ?
Les sous-classes héritent-elles de champs privés : une énigme Java
En Java, le concept d'héritage est souvent simple. Cependant, le sujet des champs privés dans les sous-classes introduit une certaine ambiguïté.
Question :
Les sous-classes héritent-elles des champs privés de leurs classes parentes ?
Réponse initiale :
Basé sur la « méthode POO normale » de l'orientation objet programmation, la réponse serait « Non ». Les champs privés sont généralement inaccessibles aux sous-classes.
Documentation Java :
La spécification du langage Java (JLS) indique que « les membres d'une classe déclarés privés ne sont pas hérités par sous-classes de cette classe. Argument :
Malgré la citation de JLS, certains peuvent affirmer que les champs privés sont hérités par les sous-classes, bien qu'indirectement. Ils affirment que ces champs existent dans les objets de sous-classe et sont accessibles par réflexion ou par d'autres moyens.
Arguments à l'appui de l'intervieweur :
Objet Composition :
La distinction clé ici est entre l'héritage pour les objets et l'héritage pour classes.
Héritage d'objets :Alors que les objets des sous-classes héritent des champs privés de leurs classes parents, les sous-classes elles-mêmes le font pas. Cette distinction entre l'héritage au niveau objet et l'héritage au niveau classe est cruciale pour comprendre le modèle d'héritage de Java. Malgré l'argument de l'intervieweur, le JLS donne une définition sans ambiguïté en la matière.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!