Vererbung und Ableitung
← Aggregation | ● | Basisklassen →
Klassen können hierarchisch aufeinander aufbauen.
Dies bedeutet, dass in einer Klassenhierachie auf der untersten Ebene Basisfunktionalität implementiert ist, die bei jeder zusätzlichen Ebene um spezifische Methoden erweitert werden kann (sog. Spezialisierung). Die erweiterten Klassen nennt man Ableitung.
Von Ebene zu Ebene werden die Methoden und Definitionen der Basisklasse an die abgeleitete Klasse durch Vererbung weitergegeben.
{
...
};
Eine derart abgeleitete Klasse besitzt sämtliche Methoden und Definitionen der Basisklasse (inkl. Konstruktor und Destruktor). Zusätzlich können weitere eigene Methoden mittels Spezialisierung definiert werden.
Die Gesamtheit aller abgeleiteten Klassen nennt man Klassenhierarchie.
Unterscheidung von Ableitung und Aggregation: Seien zwei Klassen A und B gegeben. Dann gilt
- B ist abgeleitet von A → B ist ein “A”-Object
- A besitzt das Aggregat B → A hat ein “B”-Object
Rule-of-Thumb: Prefer Compositing over Inheritance!
Beispiel:
Letzteres passt sich flexibler unterschiedlichen Zuständigkeiten an.
← Aggregation | ● | Basisklassen →