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