关键字protected授予对同一包和子类 ( http://java.sun.com/docs/books/tutorial/java/javaOO/accesscontrol.html ) 中的类的访问权限。
现在,每个类都有java.lang.Object超类(http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html)。
因此我得出结论,每个类都可以访问java.lang.Object的方法,即使它们是protected。
看看下面的例子:
公共类测试类{
公共对象 getOne() 抛出 CloneNotSupportedException {
返回 this.clone();
}
公共对象 getTwo() 抛出 CloneNotSupportedException {
return ((Object) this).clone();
}
}
虽然getOne()编译得很好,但getTwo()给出
Testclass.java:6:clone() 在 java.lang.Object 中具有受保护的访问权限
return ((Object) this).clone();
我既不明白为什么getTwo()不编译也不明白java.lang.Object与getOne().