2 回答

TA貢獻1860條經(jīng)驗 獲得超9個贊
Object類對象是無法被clone的,至少當引用obj被聲明為Object類的時候,你不能這么做...
因為Java中并不是所有的類都可以被克隆(而且JDK中還描述說不能保證某些類clone的結(jié)果x.clone()!=x絕對成立),所以O(shè)bject類對象無法調(diào)用clone()...
還有super不是指Object而是指其父類的引用。
由于clone是object類的一個protected方法,代碼中不能直接調(diào)用它
子類只能受保護的clone方法克隆他自己,為此必須重新定義clone方法,
并將其設(shè)為public,一般情況下,建議實現(xiàn)cloneable標記接口,并通過調(diào)用super.clone()方法。

TA貢獻1864條經(jīng)驗 獲得超2個贊
你要用clone()方法,必須將C實現(xiàn)Cloneable標記接口才可以,我覺得你應(yīng)該這個測試
public class C extends Object implements Cloneable{
void test() {
C c= new C();
C c2=(Object) c.clone();//The method clone() from the type Object is not visible
}
}
- 2 回答
- 0 關(guān)注
- 233 瀏覽
添加回答
舉報