以下に示すように、子クラスのPHPメソッドをオーバーライドして、シグネチャのパラメータを変更できます。PHPの子クラスは、オーバーライドされたメソッドのパラメータを変更できますか?
class theParent {
function myMethod($param1) {
// code here
}
}
class theChild extends theParent {
function myMethod($param1, $param2) {
// code here
}
}
これをテストしたところ、問題なく動作し、エラーは発生しません。私の質問は、この悪い形ですか?またはOOPの基本的な教義?
親メソッドが抽象宣言されている場合、子シグネチャは逸脱することはできません。おそらく、これはインターフェイスのその側面を強制する必要がある場合に使用するメカニズムですか?
。それが無効な構文であることは言うまでもありません... – nickb
これは**上書き**と呼ばれています。子クラスがメソッドをオーバーライドしないようにするには、[final](http://php.net/manual/en/language.oop5.final.php)キーワードを使用します。 –