Sollte die Deklaration von Methoden in PHP mit den Methoden der Elternklasse kompatibel sein?
Die Deklaration von Methoden sollte in PHP mit den Methoden der Elternklasse kompatibel sein.
In PHP, wenn eine Klasse von einer anderen Klasse erbt, spricht man von einer Unterklasse oder abgeleiteten Klasse. Die Unterklasse erbt alle Eigenschaften und Methoden der Elternklasse, kann aber auch diese Methoden hinzufügen oder überschreiben.
Wenn eine Unterklasse eine Methode der Elternklasse überschreibt, muss sie die gleiche Methodensignatur haben. Das bedeutet, dass der Methodenname und die Anzahl und der Typ der Parameter gleich sein müssen. Der Rückgabetyp kann unterschiedlich sein, sollte aber mit dem Rückgabetyp der Elternmethode kompatibel sein. Dies ist als Methodenkompatibilität oder Methodensignaturkompatibilität bekannt.
Zum Beispiel hat eine Elternklasse eine Methode mit dem Namen "calculate", die zwei Ganzzahlen als Parameter nimmt und eine Ganzzahl zurückgibt, eine Unterklasse, die diese Methode überschreibt, muss auch eine Methode mit dem Namen "calculate" haben, die zwei Ganzzahlen als Parameter nimmt und einen Wert zurückgibt, der mit einer Ganzzahl kompatibel ist.
Indem diese Regeln befolgt werden, kann die Unterklasse gleichwertig mit der Elternklasse verwendet werden und die Methoden der Elternklasse können auf ein Objekt der Unterklasse ohne Fehler aufgerufen werden.