鉴于以下代码,为什么我能够访问既不在同一个包中的类也不能扩展声明变量的类?
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?
答案 0 :(得分:0)
S是可访问的,因为它受到保护而不是私有。你可以通过B调用它。
答案 1 :(得分:0)
我猜你会获得包级访问权限。在这里查看更多信息: In Java, difference between default, public, protected, and private