亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如下內容,我為什么不能調用clone()???

如下內容,我為什么不能調用clone()???

PHP
四季花海 2023-04-24 19:15:15
package test;public class C extends Object {void test() {Object object = new Object();object.clone();//The method clone() from the type Object is not visible}}
查看完整描述

2 回答

?
慕碼人2483693

TA貢獻1860條經驗 獲得超9個贊

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

查看完整回答
反對 回復 2023-04-27
?
慕斯王

TA貢獻1864條經驗 獲得超2個贊

你要用clone()方法,必須將C實現Cloneable標記接口才可以,我覺得你應該這個測試
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
}
}

查看完整回答
反對 回復 2023-04-27
  • 2 回答
  • 0 關注
  • 219 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號