关键字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()
.