È possibile sovrascrivere un metodo PHP in una classe figlia e modificare i parametri nella firma, come illustrato di seguito.Le classi figlio PHP possono modificare i parametri dei metodi sottoposti a override?
class theParent {
function myMethod($param1) {
// code here
}
}
class theChild extends theParent {
function myMethod($param1, $param2) {
// code here
}
}
Ho provato questo e funziona bene e non genera errori. La mia domanda è, questa è una brutta forma? O un principio base di OOP?
Se il metodo genitore è dichiarato astratto, le firme figlio non possono deviare. Presumibilmente questo è il meccanismo da usare se hai bisogno di rinforzare quell'aspetto dell'interfaccia?
Quella classe bambino non è un bambino della prima classe. Per non parlare della sintassi non valida ... – nickb
Si chiama ** override **. Se si desidera impedire a una classe figlia di eseguire l'override di un metodo, utilizzare la parola chiave [final] (http://php.net/manual/en/language.oop5.final.php). –