加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java多级继承 – 1级类中受保护的实例变量

发布时间:2020-12-15 02:04:51 所属栏目:Java 来源:网络整理
导读:我有一个问题属于 Java中的多级继承.所有三个类都在同一个包中 我有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
我有一个问题属于 Java中的多级继承.所有三个类都在同一个包中

我有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?
   }  
}

它有什么意义吗?或者是默认情况下我们必须采取的行为?

解决方法

标记为protected modifier的变量/方法对同一个pacakage中的所有类都是可见的,并且只对不同包中的子类可见.
以下是示例案例.

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
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读