2 回答

TA貢獻(xiàn)2039條經(jīng)驗(yàn) 獲得超8個(gè)贊
super.clone()是這個(gè)意思,super.clone()調(diào)用子類繼承父類的那個(gè)方法,是子類中的方法,而不是父類中的方法,子類會(huì)繼承父類中的所有東西。為什么要用super標(biāo)記呢?因?yàn)槟阒匦聦?shí)現(xiàn)了clone方法,作為區(qū)分,用super標(biāo)記從父類中繼承過來的那個(gè)clone方法。而由于Java中的多態(tài)性,當(dāng)子類實(shí)例使用clone方法是,顯然會(huì)調(diào)用子類中的clone,所以會(huì)將abcdef全部復(fù)制,而不是僅僅復(fù)制父類的那一部分。而且Object類的clone方法是protected,子類中根本不能調(diào)用父類中的這個(gè)方法,只能調(diào)用從父類中繼承來的這個(gè)方法。

TA貢獻(xiàn)1712條經(jīng)驗(yàn) 獲得超3個(gè)贊
實(shí)現(xiàn)了Cloneable接口,這是一個(gè)標(biāo)記,證明這個(gè)類可以被克隆,并可以調(diào)用Object的clone方法,而super.clone()正是克隆當(dāng)前對(duì)象,這里的super.指的是調(diào)用父類的clone方法,實(shí)現(xiàn)淺克隆,即只clone當(dāng)前對(duì)象而不clone當(dāng)前對(duì)象的子對(duì)象。至于clone方法的實(shí)現(xiàn),具體沒了解過,只知道利用反射機(jī)制實(shí)現(xiàn)的,可以完全復(fù)制當(dāng)前對(duì)象,但是由于返回值是Object,所以需要強(qiáng)轉(zhuǎn)類型
添加回答
舉報(bào)