首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对象克隆错误

对象克隆错误
EN

Stack Overflow用户
提问于 2014-12-11 10:28:45
回答 1查看 564关注 0票数 0

有疑问,请澄清我,让我解释一下,A班和B班

代码语言:javascript
复制
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 {

}

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

代码语言:javascript
复制
Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
The method clone() from the type Object is not visible

我知道这两个类都扩展了Java.lang.Object类,请解释为什么class B不能获得clone()方法

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-11 10:32:33

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

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

Here是关于clone方法的Javadoc。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27420602

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档