相关疑难解决方法(0)

为什么在java.lang.Object中保护clone()方法?

clone()定义为受保护的具体原因是java.lang.Object什么?

java oop clone

105
推荐指数
3
解决办法
5万
查看次数

为什么我遇到“clone() has protected access in 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)

java syntax

0
推荐指数
1
解决办法
405
查看次数

标签 统计

java ×2

clone ×1

oop ×1

syntax ×1