親クラスから子クラスの関数を呼び出す
PHP では、親クラス内の子クラスから関数を呼び出すことができますが、慎重な計画が必要です。
次のコード例を考えてみましょう。
<code class="php">class whale { ... } class fish extends whale { ... }</code>
この例では、Whale クラスと、それを継承する Fish クラスがあります。目標は、Whale クラスの myfunc() 関数内で Fish クラスから test() 関数を呼び出すことです。
解決策: 抽象クラスを使用します
目的これにより、抽象クラスを活用できるようになります。抽象クラスは、その子クラスで特定のメソッドの実装を強制します。
<code class="php">abstract class whale { function __construct() { ... } function myfunc() { $this->test(); } abstract function test(); }</code>
更新された whale クラスでは、myfunc() と test() を抽象メソッドとして宣言するようになりました。 myfunc() は test() を呼び出しますが、これは子クラスで実装する必要があります。
<code class="php">class fish extends whale { function __construct() { parent::__construct(); } function test() { echo "So you managed to call me !!"; } }</code>
fish クラスでは、test() の実装を提供します。これにより、親クラスの抽象要件が満たされることが保証されます。
この設定により、ホエール クラスの myfunc() 内のfish から test() 関数を呼び出すことができるようになります。
<code class="php">$fish = new fish(); $fish->test(); // Output: So you managed to call me !! $fish->myfunc(); // Output: So you managed to call me !!</code>
抽象クラスを使用することで、適切な継承が強制され、子クラスが必要なメソッドを実装することが保証されます。これにより、親クラスから子クラスの関数をシームレスに呼び出すことができます。
以上が抽象クラスを使用してPHPで親クラスから子クラスの関数を呼び出す方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。