Skip to content
xenforo

Konstruktoren in abstrakten Klassen?

Content

Comments

So ein Constructor kann benutzt werden um die Klasse zu initialisieren z.B. wenn du ein final Attribut verwendest.
Außerdem kannst du so initialisierungs Logik in die abtrakte Basisklasse packen, auf die die abgeleiteten zugreifen können.
Gruß
Kamuffel

danke für die Antwort. mich hat die Frage auch interessiert.
Damit ich das richtig verstehe: Mit dem Konstruktor können aber nicht direkt Objekte der Klasse erstellt werden, sondern der Konstruktor kann nur von einer abstrakten oder konkreten Unterklasse verwendet werden?

Ein Beispiel:

abstract public class Kraftfahrzeug {
int anzahlReiffen;
int kw;
public Kraftfahrzeug (int anzahlReifen, int kw){...}
...
}

und die Unterklasse
public class LKW {
int ladeVolumen;
public LKW´(int anzahlReifen, int kw, int neuesladeVolumen){
Kraftfahrzeug(anzahlReifen, kw);
ladeVolumen = neuesladeVolumen;
}
}

Wäre eine derartige Verwendungsweise möglich?

fast richtig, du solltest aber auf ein paar dinge noch achten

diemilch wrote:


abstract public class Kraftfahrzeug {\

das abstract kommt nach dem public, also:
public abstract class.....

diemilch wrote:


public class LKW{\

nicht vergessen die abstrakte Klasse zu erweitern:

public class LKW extends Kraftfahrzeug{
...
}

diemilch wrote:


public LKW´(int anzahlReifen, int kw, int neuesladeVolumen){
Kraftfahrzeug(anzahlReifen, kw);
ladeVolumen = neuesladeVolumen;
}\

und den Konstruktor einer OK ruft man mit super() auf, also

public LKW(int anzahlReifen, int kw, int neuesladeVolumen){
super(anzahlReifen, kw);
....
}

super,

danke fürs korrigieren!