所以我有以下课程:
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();
}
}
我被要求copy()
在 A、B、C 类中定义方法。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;
}
}