3 votes

Java Multilevel Inheritance - Variable d'instance protégée dans une classe de niveau 1

J'ai une question qui relève de l'héritage multi-niveaux en Java. Les trois classes sont dans le même paquet

J'ai la classe A :

public class A {
   protected int x;
}

public class B extends A {
   public void doSomething {
      // x is visible.agreed, as it is a direct subclass of A
   }  
}

public class C extends B {
   public void doSomething {
      // x is still visible, how come? I mean it is at the 2nd level 
     //  I am confused why?
   }  
}

est-ce que ça a une signification ? ou c'est un comportement que nous devons prendre par défaut ?

3voto

Yogendra Singh Points 19406

Veuillez vous référer à ceci : http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html

El protégé spécifie que le membre ne peut être accédé qu'à l'intérieur de l'espace de travail de l'entreprise. son propre paquet (comme avec package-private) et, en outre, par une sous-classe de sa classe dans un autre paquet.

Donc si votre classe C partage le paquet avec A y B , son accessibilité .

0voto

SavedBeau Points 465

L'héritage est transitif : si la classe B hérite de la classe A ; et que la classe C hérite de la classe B ; alors C est aussi une sous-classe / classe enfant / descendant de la classe A.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X