為什麼不能直接呼叫clone方法

2022-07-03 02:20:20 字數 1934 閱讀 5358

1樓:

使用clone方法的類必須先實現cloneable介面,不然clone方法會直接返回clonenotsupportedexception不支援克隆的異常

2樓:匿名使用者

首先你這段**是兩個沒有任何關聯的類。類a和類b之間沒任何聯絡。

你new出來的只是b方法的物件,而不是它的具體方法。

而extends 就不同了 他會繼承父類所有的方法

3樓:匿名使用者

你讓b實現cloneable介面

4樓:匿名使用者

b中沒有對應的clone方法 啊!!!

object的clone方法為什麼不能直接呼叫

5樓:地瓜說機

api文件中有這樣的一段話:

object 類本身不實現介面 cloneable,所以在類為 object 的物件上呼叫 clone 方法將會導致在執行時丟擲異常。

object在其子類中,為什麼不能呼叫clone()??? 10

6樓:nye桑

protected修飾,只能在該類中或同包類中呼叫,你這裡是在你的c類中!!當然看不見object類的clone。另外,object物件好像是不能克隆的,因為object類的克隆方法只能在object類或同包類中呼叫,但你不能在jdk裡面亂寫

7樓:獨釣寒江雪

你要用clone()方法,必須將c實現cloneable標記介面才可以,我覺得你應該這個測試

public class c extends object implements cloneable}

為什麼陣列可以直接呼叫clone()方法

為什麼在j**a類中的main方法裡定義一個object卻無法呼叫clone方法 20

8樓:聖西羅的宅男

呼叫object.clone()時,當我們在自己的類裡覆蓋clone()時,對於super.clone()來說是最關鍵的是:

根類中的clone()方法負責建立正確的儲存容量,並通過「按位複製」將二進位制位從原始物件中複製到新物件的儲存空間。也就是說,它並不只是預留儲存空間以及複製一個物件——實際需要調查出欲複製之物件的準確大小,然後複製那個物件。由於所有這些工作都是在由根類定義之clone()方法的內部**中進行的(根類並不知道要從自己這裡繼承出去什麼),所以大家或許已經猜到,這個過程需要用rtti判斷欲克隆的物件的實際大小。

採取這種方式,clone()方法便可建立起正確數量的儲存空間,並對那個型別進行正確的按位複製。

引用自:

個人理解:clone雖然是object的方法,但是需要一個目標去執行,直接呼叫就等於你不復制就去嘗試貼上,當然沒有了。

9樓:華興興華

檢視jdk api:按照慣例,返回的物件應該通過呼叫 super.clone 獲得,一個類及其所有的超類(object 除外)都遵守此約定

所以object不能呼叫clone(),可以按照下面方式test test = new test();

test.clone();

10樓:匿名使用者

不知道你用的jdk是什麼版本?1.6沒有問題

string類為什麼不能呼叫.clone方法?string是object的子類,子類應該可以呼叫父

11樓:微言擺渡人

是你對protected的理解問題。這個關鍵字限制了clone()函式只能在本類或子類中使用,所以你在其他類中,不能通過string的物件呼叫此方法。

為什麼海水不能直接喝,為什麼海水不能直接食用?

海水的鹽度比較大,也有許多是對人體有害的,所以不能直接飲用!謝謝採納!海水中含鹽類比重很大,各種物質濃度太高,遠遠超過飲用水衛生標準,如果大量飲用會引起中毒。人體要排出100克海水中的鹽類,就要排出150克左右的水分。所以飲用海水的人不僅補充不到人體需要的水分,反而會加快脫水 水中含有大量鹽類和多種...

為什麼蠟不能直接燃燒,蠟燭為什麼必須加芯才能燃燒單獨的蠟蠟油為什麼點不著汽油可是一點就著

液體燃燒都是先揮發出可燃氣體後才燃燒的.液體揮發出足夠支援燃燒的濃度的氣體的溫度專叫做燃點屬.顯然,汽油的燃點高於蠟 因為蠟分子量大,熔沸點高,不易汽化 所以直接燃燒是由於汽油上方揮發出的汽油蒸汽室溫下所能達到的濃度可被點燃 而蠟蒸汽濃度太低,不能燃燒 用棉線沾著以後,由於石蠟的量少,很快被火源加熱...

EXCEL檔案不能直接開啟,為什麼我的excel2010不能直接開啟,而要先開啟程式,然後再從「檔案 開啟」選項中才能開啟?

由於excel檔案都是通過dde的方式開啟的,如果在選項中設定了 忽略其他應用程式 則excel會忽略掉其他應用程式的dde請求,所以當你通過資源瀏覽器來開啟excel檔案時,excel並不會執行開啟命令。恢復設定的方法是 依次選擇excel選單欄的工具 選項 常規 設定 忽略其他應用程式,就可以直...