Hallo zusammen,
ich habe eine Frage zu Kopier-Konstruktoren.
Es gibt folgenden parametrisierten Konstruktor:
[CODE lang="java" title="Java"] public Wohnung(int neupreis, int baujahr, int zimmer, int wohnflaeche) {
super(neupreis, baujahr);
this.zimmer= zimmer;
this.wohnflaeche= wohnflaeche;
}[/CODE]
Zusätzlich soll ein Kopier-Konstruktor erstellt werden. Mein Versuch schaut aktuell so aus:
[CODE lang="java" title="Java"] public Wohnung(Wohnung wohnung) {
super(wohnung.getNeupreis(), wohnung.getBaujahr());
this.zimmer= wohnung.zimmer;
this.wohnflaeche= wohnung.wohnflaeche;
}[/CODE]
Allerdings bin ich durch Internetrecherche auch auf folgende Möglichkeiten gestoßen:
[CODE lang="java" title="Java"] public Wohnung(Wohnung wohnung) {
this(wohnung.getNeupreis(), wohnung.getBaujahr(), wohnung.zimmer, wohnung.wohnflaeche);
}[/CODE]
bzw.
[CODE lang="java" title="Java"] public Wohnung(Wohnung wohnung) {
super(wohnung);
}[/CODE]
Meine Frage: Was ist der Unterschied zwischen diesen 3 Kopier-Konstruktoren?
Welcher sollte am besten verwendet werden?
(Hinweis, falls das relevant ist: Objekte sollen mit dem Datentyp Haus der Oberklasse gespeichert werden. Jede Wohnung wird also als Haus gespeichert.)
In welchen Fällen wird in der Unterklasse zusätzlich der Konstruktor der Oberklasse benötigt?
[CODE lang="java" title="Java"] public Wohnung(Haus haus) {
super(haus);
}[/CODE]
Vielen Dank im Voraus für eure Hilfe!
ich habe eine Frage zu Kopier-Konstruktoren.
Es gibt folgenden parametrisierten Konstruktor:
[CODE lang="java" title="Java"] public Wohnung(int neupreis, int baujahr, int zimmer, int wohnflaeche) {
super(neupreis, baujahr);
this.zimmer= zimmer;
this.wohnflaeche= wohnflaeche;
}[/CODE]
Zusätzlich soll ein Kopier-Konstruktor erstellt werden. Mein Versuch schaut aktuell so aus:
[CODE lang="java" title="Java"] public Wohnung(Wohnung wohnung) {
super(wohnung.getNeupreis(), wohnung.getBaujahr());
this.zimmer= wohnung.zimmer;
this.wohnflaeche= wohnung.wohnflaeche;
}[/CODE]
Allerdings bin ich durch Internetrecherche auch auf folgende Möglichkeiten gestoßen:
[CODE lang="java" title="Java"] public Wohnung(Wohnung wohnung) {
this(wohnung.getNeupreis(), wohnung.getBaujahr(), wohnung.zimmer, wohnung.wohnflaeche);
}[/CODE]
bzw.
[CODE lang="java" title="Java"] public Wohnung(Wohnung wohnung) {
super(wohnung);
}[/CODE]
Meine Frage: Was ist der Unterschied zwischen diesen 3 Kopier-Konstruktoren?
Welcher sollte am besten verwendet werden?
(Hinweis, falls das relevant ist: Objekte sollen mit dem Datentyp Haus der Oberklasse gespeichert werden. Jede Wohnung wird also als Haus gespeichert.)
In welchen Fällen wird in der Unterklasse zusätzlich der Konstruktor der Oberklasse benötigt?
[CODE lang="java" title="Java"] public Wohnung(Haus haus) {
super(haus);
}[/CODE]
Vielen Dank im Voraus für eure Hilfe!
Zuletzt bearbeitet: