昏黄烛火轻摇晃 2017-07-15 14:46 采纳率: 61.5%
浏览 3278
已采纳

JAVA 所有类都是Object的子类 ,那么子类的对象为什么不能直接调用Clone()方法

虽然是Clone()在Object里面是protected权限,即使Person类是和Object不同包,但是protected定义的不同包的子类也可以继承父类的方法啊?
class Person implements Cloneable
{
private String name ;
private int age ;
public Person(String name,int age){
this.name = name ;
this.age = age ;
}
public String toString(){
return "姓名:"+this.name+",年龄:"+this.age ;
}
public Object clone() throws CloneNotSupportedException{
return super.clone() ;
}
}
public class TestDemo
{
public static void main(String args[]) throws Exception
{
Person p1 = new Person("张三",30) ;
Person p2 = (Person)p1.clone() ;
p2.name = "李四" ;
System.out.println(p1) ;
System.out.println(p2) ;
}
}

  • 写回答

5条回答

  • threenewbee 2017-07-16 02:14
    关注

    Clone必须交给实现这个类的程序员去实现。否则从逻辑上说,别人很难写出真正的Clone方法。看这个代码
    class A
    {
    public A a;
    public A()
    {
    a = this;
    }
    }
    这样的代码如果自动克隆,就会无限递归。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

悬赏问题

  • ¥15 安装svn网络有问题怎么办
  • ¥15 Python爬取指定微博话题下的内容,保存为txt
  • ¥15 vue2登录调用后端接口如何实现
  • ¥65 永磁型步进电机PID算法
  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥15 latex怎么处理论文引理引用参考文献