Java multi-level inheritance – protected instance variables in level 1 classes
•
Java
I have a problem with multi - level inheritance in Java All three classes are in the same package
I have class 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? } }
Does it mean anything? Or what we have to do by default?
Solution
Variables / methods marked as protected modifier are visible to all classes in the same package and only to subclasses in different packages
package a; class A{ protected int x; } class B extends A{ //x can be accessed from this class } class C extends B { //x can be accessed from this class } class D{ //x can be accesed this class but you will have to create A's instance } package B class One { //cannot access x from this class } class Two extends A { //can access x from this class }
The content of this article comes from the network collection of netizens. It is used as a learning reference. The copyright belongs to the original author.
THE END
二维码