【发布时间】:2010-11-21 11:36:46
【问题描述】:
所以我有以下课程:
class A{
public A(int n1){
n=n1;
}
int n;
}
class B extends A{
public B(int n2){
super(n2);
cnt=1;
}
int cnt;
}
class C extends B{
public C(int n3){
super(n3);
clr="red";
}
String clr;
}
public class Driver {
public static void main(String[] args){
A a,b,c,d,e;
a=new B(200); d=a.copy();
b=new C(100); e=b.copy();
}
}
我被要求在 A、B、C 类中定义方法 copy()。 copy 方法本质上是复制所有嵌套对象。
我有两个问题:
我没有看到正在构造任何嵌套对象,为什么他要我复制所有嵌套对象?是不是因为我在构造子类对象的时候,构造了一个基类对象并嵌套在子类对象里面?
这样写方法是否正确(以B类为例):
class B extends A{
public B(int n2){
super(n2);
cnt=1;
}
int cnt;
public A copy(){
A copy_ref=new B(1);
((B)copy_ref).cnt=this.cnt;
copy_ref.n=super.n;
return copy_ref;
}
}
【问题讨论】:
标签: java inheritance copy deep-copy