這是我無法理解的東西。從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();
}
}