作者swpoker (swpoker)
看板java
標題Re: [問題] Object的clone()問題
時間Fri Mar 7 12:11:20 2014
※ 引述《michael47 (hitman)》之銘言:
: 請問Object class的method, clone(),的modifier是設為protected,
: 對於protected的method,不是只要是該class的descendant就可以call嗎?
: 但是所有的objects不是都是Object class的descendants嗎?
: 如果是這樣,為何其它的class不能直接使用Object的clone()?
protected(繼承範圍)是表示該成員的使用是在繼承的範圍內
class BObject {
void test() throws Exception{
this.clone();
super.clone();
Object.clone();
}
}
編譯錯誤會發生在第三行:Object.clone();
protected是表示該成員的使用範圍僅只在於有繼承的關係內
所有物件A去使用物件B的protected 成員的時候
使用的範圍是否為在繼承的範圍內?
例如以在第2行來說super.clone();
使用的範圍在BObject內 而BOject是繼承Object
所以可以使用
而第三行的範圍是Object,所以不可見
--
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.29.28.131
推 michael47:感謝回覆,Object不是一個在java.lang內定義的一個class 03/07 12:30
推 michael47:如果不是static method可以直接使用Object.clone()嗎? 03/07 12:33
→ tails32100:回樓上 應該是不行 03/07 12:34
→ swpoker:static 是描述在class or object範圍 03/07 17:41