Parent-Class und Child-Class
Kurz: In der Vererbung ist die Parent-Class (Elternklasse, Oberklasse, Superklasse) die Klasse, von der geerbt wird. Die Child-Class (Kindklasse, Unterklasse, Subklasse) erbt und kann erweitern.
Genauer: Die Begriffe beschreiben nur die Rollen in einer „ist-ein”-Beziehung. Ein Auto (Kind) ist ein Fahrzeug (Eltern). Dieselbe Klasse kann beides zugleich sein: Eltern für die einen, Kind für andere.
Im Detail
class Fahrzeug { // Parent / Oberklasse / Superclass
protected int raeder;
Fahrzeug(int raeder) { this.raeder = raeder; }
void starten() { System.out.println("Fahrzeug startet"); }
}
class Auto extends Fahrzeug { // Child / Unterklasse / Subclass
Auto() { super(4); }
@Override void starten() { super.starten(); System.out.println("Motor an"); }
}
class Sportwagen extends Auto { } // Kind von Auto, Enkel von Fahrzeug| Deutsch | Englisch | Bedeutung |
|---|---|---|
| Oberklasse, Elternklasse | superclass, parent class, base class | vererbt |
| Unterklasse, Kindklasse | subclass, child class, derived class | erbt |
- Hierarchie: Eine Klassenhierarchie ist ein Baum. Ganz oben steht in Java immer
Object. - Was das Kind bekommt: Alle nicht-privaten Attribute und Methoden. Es kann Methoden überschreiben und neue hinzufügen.
- Konstruktorkette: Beim Erzeugen eines Kindes läuft zuerst der Konstruktor des Elternteils (
super(...)). - Typkompatibilität:
Fahrzeug f = new Auto();ist erlaubt (Upcast). Umgekehrt braucht es einen Cast:Auto a = (Auto) f;, und der kann zur Laufzeit scheitern. - Prüfen:
f instanceof Autofragt, ob das Objekt einAutoist. - Nur eine Elternklasse: Mehrere Quellen für Verhalten lösen Interfaces.
Siehe auch: extends, Inheritance (Vererbung), Mehrfachvererbung