Java 对象克隆错误

Java 对象克隆错误,java,clone,Java,Clone,有疑问请澄清我 让我解释一下 有两个等级A和B public class A implements Cloneable{ public static void main(String[] args) { A a1 = new A(); try { A a2 = (A) a1.clone();//works fine } catch (CloneNotSupportedException e) {

有疑问请澄清我 让我解释一下 有两个等级A和B

public class A implements Cloneable{

    public static void main(String[] args) {

        A a1 = new A();
        try {
            A a2 = (A) a1.clone();//works fine
        } catch (CloneNotSupportedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        B b1 = new B();
        B b2 = (B) b1.clone();//cannot get this method

    }

}

class B implements Cloneable {

}
当我编译这段代码时,出现了以下错误

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
The method clone() from the type Object is not visible
我知道这两个类都扩展了
Java.lang.Object
Class 请解释为什么
class B
无法获取
clone()
方法

clone()
方法受到保护。由于main是类
A
的一部分,它允许对
A
类型的对象调用受保护的方法,因此
A.clone()
将正常工作

b.clone()
失败,因为
clone
受到保护,因此在
b
类之外不可用,除非它将被
b
公开重写

是关于
clone
方法的Javadoc。

方法受保护。由于main是类
A
的一部分,它允许对
A
类型的对象调用受保护的方法,因此
A.clone()
将正常工作

b.clone()
失败,因为
clone
受到保护,因此在
b
类之外不可用,除非它将被
b
公开重写


是关于
clone
方法的Javadoc。

IIRC您必须实现一些特殊接口以允许克隆。“可克隆”之类的东西,不确定这里没有内部类。IIRC您必须实现一些特殊接口以允许克隆。“可克隆”之类的,不确定这里没有内部类。