Cheatsheet Vererbung (Inheritance): Grundlagen und Begriffe

Von Super- und Subklassen


Die "ist ein"-Beziehung

Die Verwandschaftsbeziehung zwischen Superklasse und deren Subklassen wird auch als "ist ein"-Beziehung bezeichnet. Damit soll verdeutlicht werden, dass Subklassen "Kinder" der Superklasse sind und von dieser gewisse Dinge erben.

Beispiel in diesem Tutorial: Der Hund (Subklasse) ist ein Haustier (Superklasse) , das bellen kann.


Das Schlüsselwort extends

Wenn du eine Subklasse definierst, musst du mit extends notieren, welche Superklasse erweitert wird:
class MeineSubklasse extends MeineSuperklasse {...}
Beachte, dass eine Superklasse mehrere Subklassen unter sich haben kann...


Synonyme für die Begriffe "Superklasse" und "Subklasse"

Das Prinzip der Vererbung gibt es in praktisch allen OOP-Programmiersprachen. Deshalb haben sich leider verschiedene Begriffe für die gleichen Sachverhalte etabliert. Ich versuche deshalb, hier verschiedenen Synonyme aufzulisten, wobei sich noch weitere Begriffe finden lassen:

Superklasse = Vererbende Klasse = Elternklasse = Mutterklasse = übergeordnete Klasse = Basisklasse = Oberklasse

Subklasse = Erbende Klasse = Kindklasse = untergeordnete Klasse = abgeleitete Klasse = Unterklasse


Trugschlüsse beim Wort "Vererbung"

Vererbung und Erben gibt es auch im realen Leben, aber Achtung, dies könnte dich auf falsche Fährten bringen!

Wenn man nach dem Tod eines Menschen erbt, wird das Erbe auf die Erben aufgeteilt. Subklassen hingegen erben alles von der Superklasse, sie müssen also nichts untereinander teilen.

Deine Eltern haben dir Gene vererbt. Du hast also von zwei Menschen Geninformationen erhalten. Bei der OOP in PHP können jedoch Suklassen nur immer von einer einzigen Superklasse erben.
Um es mit einem Fachbegriff auzudrücken: In PHP gibt es keine Mehrfachvererbung!