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

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

為什么不可以直接通過子類的對象cl.clone()來調用clone()方法呢?why?

為什么不可以直接通過子類的對象cl.clone()來調用clone()方法呢?why?

C
眼眸繁星 2023-04-24 15:11:20
class cloneClass implements Cloneable{int x=0;int y=9;protected void protectedMethod(){System.out.println("calling ProtectedMethod");}Object getObj() throws CloneNotSupportedException{return clone();}}class extendProtectedClass extends cloneClass{}public class Test{public static void main(String [] args){cloneClass cl=new cloneClass();try{cloneClass cl2=(cloneClass)cl.clone();//通過cl.clone()條用Object.clone()方法出錯System.out.println(cl2.x);}catch(CloneNotSupportedException ex){ex.printStackTrace();}/*extendProtectedClass ep=new extendProtectedClass();ep.protectedMethod(); //可以通過子類的對象直接調用父類的保護方法protectedMethod()*/}}問題:為什么不可以直接通過子類的對象cl.clone()來調用clone()方法而要通過子類的方法來簡介調用我寫的Object.clone()是為了說Object類的clone()方法,不是說通過Object類名來調用clone()方法。實際上我是用對象cl.clone()調用
查看完整描述

2 回答

?
MYYA

TA貢獻1868條經驗 獲得超4個贊

protected Object clone() ;
Object類中定義的clone()方法聲明為protected,只能被同一包下的類及子類調用,通過cloneClass.clone()調用因為沒有可見的clone()方法,會提示no such method.
你要通過(cloneClass)cl.clone()調用的話,在cloneClass內中聲明
Object clone() {}重載clone()方法,去掉protected聲明

查看完整回答
反對 回復 2023-04-27
?
慕碼人2483693

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

Object類中沒有靜態方法clone(),當然不能這樣調用。

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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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