EMZETT.
Login

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
DeutschEnglischBedeutung
Oberklasse, Elternklassesuperclass, parent class, base classvererbt
Unterklasse, Kindklassesubclass, child class, derived classerbt
  • 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 Auto fragt, ob das Objekt ein Auto ist.
  • Nur eine Elternklasse: Mehrere Quellen für Verhalten lösen Interfaces.

Siehe auch: extends, Inheritance (Vererbung), Mehrfachvererbung