Wie ruft man in Java einen Konstruktor einer anderen Klasse auf?
Z.b. ich hab klasse a und klasse b, ich will den Konstruktor von Klasse b in klasse a aufrufen und ein klasse b Objekt zu erzeugen.
Konstruktoren werden ja nicht vererbt.
3 Antworten
Der konstruktor einer Klasse wird automatisch aufgerufen wenn du ein Objekt einer Klasse erstellst.
Klasse k = new Klasse(argumente);
In den Klammern kommen (falls nötig) die Argumente rein die der Konstruktor braucht um die Klasse zu konstruieren
Was sollte das alles mit Vererbung zutun haben? Wenn du einen Konstruktor aufrufst, dann doch nur, um ein Objekt zu initialisieren.
Ein Beispiel:
class Ship {
private Color color;
public Ship(Color color) {
this.color = color;
}
}
class Shipyard {
public Ship buildShip(Color color) {
return new Ship(color);
}
}
Die Werft baut in buildShip ein Schiffsobjekt, indem es zum einen den new-Konstruktor benutzt (zur Speicherreservierung für das Schiffsobjekt) und zum anderen (danach) den Konstruktor von Ship aufruft.
stimmt du hast da was nicht verstanden .
du hast zwei klassen, damit kannst du überall wo du die einbindest die klasse benutzen und davon objekte machen .
was du meinst ist eine klasse zu erweitern oder von einer klaase ableiten , damit brauchst du dann halt nur ein objekt der abgeleiteten etc klasse machen .
das eine hat also mit dem anderen nix zu tun .
Wenn du eine Klasse B hast, die von A erbt, dann kannst du den Konstruktor von der vererbten Klasse A mit "super(Argumente...)" im Konstruktor von Klasse B aufrufen. Das muss dann aber das erste sein, was du im Konstruktor der Klasse B machst.
Check ich net. Was wenn niemand von niemanden erbt? Und kann ich den Konstruktor von klasse b in einer Methode von klasse a aufrufen?
Wenn nichts vererbt wird, dann kannst du selbstverständlich in der entsprechenden Methode Instanzen der Klasse B erstellen. Wie das aussieht, steht ja in der anderen Antwort. Hab die Frage wohl falsch interpretiert.
Check ich net. Was wenn niemand von niemanden erbt? Und kann ich den Konstruktor von klasse b in einer Methode von klasse a aufrufen?