0

私の PHP コードでは、クラス A と呼ぶ抽象クラスに保護されたメソッドがあります。A を拡張する B という名前の新しいクラスを作成する場合、単に B でパブリックに宣言する必要がありますか、それとも再度宣言する必要がありますか?すべての実装を作成して、BI をインスタンス化したときにこのメソッドを呼び出せるようにしますか?

abstract class A {
  protected function test() {
    //do some stuff here
  }
}

class B extends A {
  public function test() {
    //Do I need to do something here?
  }
}

クローズさんありがとう

4

1 に答える 1

1

呼び出しを行う必要がありparent::test()ます。または、子クラスでメソッドをまったく宣言しないでください。2 番目のケースでは、メソッドは親クラスから継承Bされますが、最初のケースでは、親メソッドを呼び出すメソッド、つまり のメソッドになりAます。

また、子クラスでメソッドを宣言しないと公開されないため、探しているものではない可能性があります(継承の仕組みを示すために言及されています)。つまり、パブリックメソッドが必要な場合-唯一の方法は、クラスのメソッドparent::test()内から呼び出すことですtest()B

于 2013-10-08T13:16:44.557 に答える