So habe ich die folgenden Klassen:Kopieren verschachtelte Objekte in Java
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();
}
}
ich gefragt werde die Methode copy()
in den Klassen A, B, C zu definieren. Die Kopiermethode erstellt im Wesentlichen eine Kopie aller verschachtelten Objekte.
Ich habe 2 Fragen:
Ich sehe keine verschachtelten Objekten aufgebaut ist, warum er mich bittet, eine Kopie aller verschachtelten Objekten zu machen? Liegt es daran, dass beim Erstellen eines Unterklassenobjekts ein Basisklassenobjekt erstellt wird und innerhalb des Unterklassenobjekts verschachtelt wird?
Ist es richtig, die Methode zu schreiben, wie (nehmen Klasse B zum Beispiel) folgt:
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;
}
}
Danke für Ihre Antwort. Ich verstehe die Beziehung, die sich durch Vererbung und Komposition ausdrückt. Ich bin gerade von "verschachtelten Objekten" verwirrt worden. Wo zum Teufel sind die verschachtelten Objekte in diesem Fall ??? Und die Methode copy() funktioniert tatsächlich. Ich möchte nur sichergehen, dass es das ist, wonach die Frage fragt. – pippoflow