访问受保护变量

时间:2014-02-19 10:42:56

标签: java inheritance protected

鉴于以下代码,为什么我能够访问既不在同一个包中的类也不能扩展声明变量的类?

public class B{
     protected String s = "B1";
     public B() {};

}

public class P{
     public void out(Object o){
         System.out.println(o);}
}

public class M{
    B b = new B();
    P.out(b.s);}

为什么out方法可以访问b.s?

2 个答案:

答案 0 :(得分:0)

S是可访问的,因为它受到保护而不是私有。你可以通过B调用它。

答案 1 :(得分:0)

我猜你会获得包级访问权限。在这里查看更多信息: In Java, difference between default, public, protected, and private