这是我无法理解的东西。从java.lang.Object访问clone()
在java.lang.Object
中,clone()
用protected
修饰符定义。根据定义,它可以通过名称在其自己的类定义中进行访问,也可以通过名称在派生自它的任何类中进行命名,也可以通过同名包中任何类的定义中的名称来进行访问。
这里Sample
类是在另一个包中,显然它不能从Object
类访问clone()
。但由于Sample
隐含地从Object
派生,为什么它无法访问它?该定义并没有说它必须满足这两个条件(在同一个包中,也是一个子类)。
public class Sample {
public Object foo() throws CloneNotSupportedException {
...
return someObject.clone();
}
}