Guten Tag zusammen,
ich bin aktuell recht neu in der Programmiersprache Java und habe an der ein oder anderen Stelle noch die ein oder andere Frage.
Ich versuche mein Problem einmal zu formulieren:
und
sowie das Hauptprogramm:
Ich habe das Programm für Absicht einfach gehalten, da es mir nur um den Kern der Frage geht.
In diesem Hauptprogramm erzeuge ich mir zunächst zwei Instanzen. Wenn ich nun die Methode clone() (Kommentar Nr.3)
aufrufe, erstellt er mir eine Kopie dieses Objektes, da in der class A die Methode auch überschrieben wurde. Doch was passiert,
wenn ich nun (Kommentar Nr.3) schreibe und mir dieses Objekt mittels Kommentar Nr.4 klonen möchte? Die Methode clone() der class A
liegt im Scope der class B. Werden im Zuge des Kommentar Nr.4 dann auch die Instanz-Variablen der class B kopiert?
Bin heute auf das Problem gestoßen. Habe es verstanden, wenn die class XYZ keine Kindklasse besitzt. Dann ist es kein Problem. Doch ich habe
Probleme, mir vorzustellen, wie es abläuft, wenn ich eine Kindklasse habe.
Und was würde passieren, wenn ich anstelle von Kommentar Nr.2 und Kommentar Nr.4 folgenden Code schreiben würde:
Sehe ich es richtig, dass ich dann, wenn ich Nr. 5 und Nr.6 im Code stehen habe, ich in class B die Methode clone() ebenfalls implementieren muss?
Ich bedanke mich bei euch, falls ihr mir helfen könnt. Stehe da irgendwie auf dem Schlauch. Ist es ich noch langer und harter weg, bis alles gut sitzt. ;-)
Schönen Gruß
ich bin aktuell recht neu in der Programmiersprache Java und habe an der ein oder anderen Stelle noch die ein oder andere Frage.
Ich versuche mein Problem einmal zu formulieren:
Java:
public class A implements Cloneable{
/* Instanz-Variable */
private int variableEins;
/* Überschriebene Methoden */
@Override
public A clone() {
A a = null;
try{
a = (A) super.clone();
} catch(CloneNotSupportedException e) {
e.printStackTrace();
}
return a;
}
}
und
Java:
public class B extends A{
/* Instanz-Variable */
private int variableZwei;
}
sowie das Hauptprogramm:
Java:
public class TestProgramm {
public static void main(String[] args) {
/* Erstellen von Instanzen */
A a = new A(); // (1.)
A b = new B(); // (2.)
A c = a.clone(); // (3.)
A d = b.clone(); // (4.)
}
}
Ich habe das Programm für Absicht einfach gehalten, da es mir nur um den Kern der Frage geht.
In diesem Hauptprogramm erzeuge ich mir zunächst zwei Instanzen. Wenn ich nun die Methode clone() (Kommentar Nr.3)
aufrufe, erstellt er mir eine Kopie dieses Objektes, da in der class A die Methode auch überschrieben wurde. Doch was passiert,
wenn ich nun (Kommentar Nr.3) schreibe und mir dieses Objekt mittels Kommentar Nr.4 klonen möchte? Die Methode clone() der class A
liegt im Scope der class B. Werden im Zuge des Kommentar Nr.4 dann auch die Instanz-Variablen der class B kopiert?
Bin heute auf das Problem gestoßen. Habe es verstanden, wenn die class XYZ keine Kindklasse besitzt. Dann ist es kein Problem. Doch ich habe
Probleme, mir vorzustellen, wie es abläuft, wenn ich eine Kindklasse habe.
Und was würde passieren, wenn ich anstelle von Kommentar Nr.2 und Kommentar Nr.4 folgenden Code schreiben würde:
Java:
B e = new B(); // (5.)
B f = e.clone(); // (6.)
Sehe ich es richtig, dass ich dann, wenn ich Nr. 5 und Nr.6 im Code stehen habe, ich in class B die Methode clone() ebenfalls implementieren muss?
Ich bedanke mich bei euch, falls ihr mir helfen könnt. Stehe da irgendwie auf dem Schlauch. Ist es ich noch langer und harter weg, bis alles gut sitzt. ;-)
Schönen Gruß