Wozu benötigst du dann eine Kindklasse?
Ich möchte die Webanwendung wartbar programmieren.
Bleiben wir bei dem Beispiel Auto:
$oAuto = new Porsche();
$oAuto->beschleunige();
$oAuto->verzoegere();
echo $oAuto->getZurueckgelegteStrecke();
Es kann ja sein, dass irgendwann entschieden wird, dass der Porsche gegen einen Traecker ausgetauscht werden soll:
$oAuto = new Traecker();
$oAuto->beschleunige();
$oAuto->verzoegere();
echo $oAuto->getZurueckgelegteStrecke();
Jetzt hat sich nur eine Codezeile geändert, aber die Webanwendung funktioniert weiterhin, weil sie nur auf den abstrakten Methoden von Auto arbeitet.
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.
lg Stephan