Вот что я не могу понять.
В java.lang.Object
параметр clone()
определяется с помощью модификатора protected
. По определению, к которому он может обращаться по имени внутри собственного определения класса, по имени внутри любого производного от него класса и по имени в определении любого класса в одном пакете.
Здесь класс Sample
находится в другом пакете и, очевидно, он не может получить доступ к clone()
из класса Object
. Но поскольку Sample
выводится неявно из Object
, почему он не может получить к нему доступ? В определении не сказано, что он должен удовлетворять обоим условиям (внутри того же пакета И также быть подклассом).
public class Sample {
public Object foo() throws CloneNotSupportedException {
...
return someObject.clone();
}
}