作者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
1F:推 michael47:感谢回覆,Object不是一个在java.lang内定义的一个class 03/07 12:30
2F:推 michael47:如果不是static method可以直接使用Object.clone()吗? 03/07 12:33
3F:→ tails32100:回楼上 应该是不行 03/07 12:34
4F:→ swpoker:static 是描述在class or object范围 03/07 17:41