• Guten Start ins Wintersemester 2024/2025

Konstruktoren in abstrakten Klassen?

Unser Sponsor SAP 4 Students
Unser Sponsor
die ihr hoffentlich schlauer seid als ich was OOP angeht!
Kann mir jemand erklären, welchen Sinn ein Konstruktor in einer abstrakten Klasse hat? Hab das im Script nicht verstanden 😕
Danke und Lg Fini
 
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

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

public class LKW{

nicht vergessen die abstrakte Klasse zu erweitern:

public class LKW extends Kraftfahrzeug{
...
}

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);
....
}
 
Oben