Topic: 有关克隆的问题 |
Print this page |
1.有关克隆的问题 | Copy to clipboard |
Posted by: xingchao Posted on: 2006-11-15 16:57 请大家帮帮忙解决个问题 package questions.c2; public class Debug2_2 implements Cloneable{ StringBuffer sb=new StringBuffer("Salse Report for"); public Debug2_2 clone() throws CloneNotSupportedException{ Debug2_2 result=super.clone(); result.sb=new StringBuffer(this.sb.toString()); return result; } public static void main(String[] args) throws CloneNotSupportedException{ Debug2_2 x=new Debug2_2(); Debug2_2 y=x.clone(); x.sb.append("October"); System.out.println(y.sb); } } 这个程序中 在编译时 报错 “不兼容的类型” 第六行 这是怎么回事啊? 希望大家多多指点! |
2.Re:有关克隆的问题 [Re: xingchao] | Copy to clipboard |
Posted by: stonefeng Posted on: 2006-12-11 22:23 super.clone()的返回值类型为Object,而你要将其赋值给Debug2_2类型,显然类型不兼容。 |
3.Re:有关克隆的问题 [Re: xingchao] | Copy to clipboard |
Posted by: focus Posted on: 2006-12-12 16:24 Debug2_2 result=super.clone(); 俺笨,不知道这里的 super 指的是谁? |
4.Re:有关克隆的问题 [Re: xingchao] | Copy to clipboard |
Posted by: cxp108 Posted on: 2006-12-13 08:42 Java中所有的类都 extends 自Object,因此不管你使用没使用extends关键字,只要是class就一定继承自Object |
5.Re:有关克隆的问题 [Re: xingchao] | Copy to clipboard |
Posted by: stonefeng Posted on: 2006-12-13 21:36 从你的类定义 public class Debug2_2 implements Cloneable 来看,Debug2_2直接从Object类继承,因而super应该是Object. 而cxp108的说法也不完全: 确切的说法应该是上一级父类,只有当上一级父类没有找到clone()方法时,则向再上一级父类寻找该方法,一直到最高级父类Object为止。 |
Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1 客服电话 18559299278 客服信箱 714923@qq.com 客服QQ 714923 |