在java中,访问权限分为三个级别:
- 公共——向世界开放
- 私人 - 仅向全班开放
- 受保护 - 仅对类及其子类开放(继承)。
那么为什么java编译器允许这种情况发生呢?
TestBlah.java:
public class TestBlah {
public static void main(String[] args) {
Blah a = new Blah("Blah");
Bloo b = new Bloo("Bloo");
System.out.println(a.getMessage());
System.out.println(b.getMessage()); //Works
System.out.println(a.testing);
System.out.println(b.testing); //Works
}
}
布拉赫.java:
public class Blah {
protected String message;
public Blah(String msg) {
this.message = msg;
}
protected String getMessage(){
return(this.message);
}
}
布卢.java:
public class Bloo extends Blah {
public Bloo(String testing) {
super(testing);
}
}
其实应该是:
只开放给同一包中的类 http://java.sun.com/docs/books/tutorial/java/javaOO/accesscontrol.html类及其子类(继承)
这就是为什么
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)