Итак, у меня есть следующие классы:
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 по сути делает копию всех вложенных объектов.
У меня есть 2 вопроса:
Я не вижу построенных вложенных объектов, почему он спрашиваетмне сделать копию всех вложенных объектов?Это потому, что когда я создаю объект подкласса, объект базового класса создается и вкладывается в объект подкласса?
Правильно ли написать метод следующим образом (например, класс 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;
}
}