clone()定义为受保护的具体原因是java.lang.Object什么?
对象的克隆方法是受保护的,因此可以在子类(A 类)中访问它,那么为什么我会收到“clone() has protected access in java.lang.Object”编译器错误?我认为所有 Java 类都是 Object 的子类。提前致谢。
下面的代码会引发编译器错误:
public class A {
public static void main(String[] args) {
Object o = new Object();
o.clone();//error
}
}
Run Code Online (Sandbox Code Playgroud)
但是这个编译完美,它们不是有相同的语义吗?
public class A {
protected void foo() {
}
}
Run Code Online (Sandbox Code Playgroud)
public class B extends A {
public static void main(String[] args) {
A a = new A();
a.foo();
}
}
Run Code Online (Sandbox Code Playgroud)