Object.clone()
大家可能不太理解由Object.clone()而引出的protected权限问题这句话,那我们先看一段代码:
第一个类CloneClassOne
package com.ustc.sup;
public class CloneClassOne {
}
第二个类CloneClassTwo
package com.ustc.sup;
public class CloneClassTwo {
public static void main(String[] args) {
// TODO Auto-generated method stub
CloneClassOne one=new CloneClassOne();
one.clone();
Object object = new Object();
object.clone();
}
}
大家觉得这段代码有没有错呢?
答案:
one.clone();和object.clone();这两句提示The method clone() from the type Object is not visible
我们会有疑问:Object类是所有类的父类,那么为什么子类不能访问父类的protected修饰的方法呢?
“与基类不在同一个包中的子类,只能访问自身从基类继承而来的受保护成员,而不能访问基类实例本身的受保护成员”
例如:
父类Person在包com.ustc.sub;
package com.ustc.sub;
public class Person {
protected int a = 4;
protected int getA() {
return a;
}
}
子类Manager 、Student在包com.ustc.sup
package com.ustc.sup;
import com.ustc.sub.Person;
public