6

以下に示すように、子クラスで PHP メソッドをオーバーライドし、署名のパラメーターを変更できます。

class theParent {
  function myMethod($param1) {
    // code here
  }
}

class theChild extends theParent {
  function myMethod($param1, $param2) {
    // code here
  }
}

これをテストしたところ、正常に動作し、エラーは発生しません。私の質問は、これは悪い形ですか?それとも OOP の基本的な教義ですか?

親メソッドがabstractと宣言されている場合、子シグネチャは逸脱できません。おそらくこれは、インターフェースのその側面を強制する必要がある場合に使用するメカニズムですか?

4

3 に答える 3

0

あなたがしたことはオーバーライドと呼ばれ、それは何も悪いことではありませんが、子クラスを親の署名に固執させたい場合は、以下のようにインターフェースを使用します。署名だけを与えるだけで、子クラスはそれらをそのまま実装する必要があります宣言した。

 interface theParent {
      function myMethod($param1) ;
    }

    class theChild extends theParent {
      function myMethod($param1) {
        // code here
      }
    }

それが役に立てば幸い :)

于 2012-07-27T09:49:56.220 に答える
0

に限って

class theChild extends theParent {
}

これは OOP の良い例です。

于 2012-07-26T21:50:51.960 に答える