dedlfix: Abstraktion

Beitrag lesen

echo $begrüßung;

Es darf nicht passieren, dass im ersten Codeausschnitt eine Methode aufgerufen wird, die in Auto nicht vorhanden war aber mit der Erweiterung durch Porsche hinzukam.
Dann kann ich das Objekt nicht mehr gegen eines einer anderen Kindklasse austauschen.

Man kann mit PHP nicht verhindern, dass jemand was notiert, das nicht vorhanden ist. Es gibt ja keinen Kompilationsvorgang, der solche Fehler findet. Zudem gibt es magische Funktionalität, wie die __call()-Methode, die als Catch-All fungiert. Selbst bei Type Hinting auf die Elternklasse schützt dich nichts davor, etwas aufzurufen, dass nur in einer Kindklasse definiert ist. Für eine Elternklasse würde ja __call() einspringen können. Es liegt in der Verantwortung des Programmierers, solche Fehler zu vermeiden. Durch Type Hinting gibst du ja schon zu erkennen, dass eine Funktion/Methode sich auf die Verarbeitung der angegebenen Klasse beschränkt.

echo "$verabschiedung $name";