親クラスから子クラスの関数を呼び出す
PHP では、親クラス内の子クラスから関数を呼び出すことができますが、慎重な計画が必要です。
次のコード例を考えてみましょう:
class whale { ... }
class fish extends whale { ... }
この例には、 whale クラスと、それを継承する Fish クラスがあります。目標は、Whale クラスの myfunc() 関数内の Fish クラスから test() 関数を呼び出すことです。
解決策: 抽象クラスを使用します
達成するにはこれにより、抽象クラスを活用できるようになります。抽象クラスは、その子クラスに特定のメソッドの実装を強制します。
abstract class whale {
function __construct() { ... }
function myfunc() { $this->test(); }
abstract function test();
}
更新された whale クラスでは、myfunc() と test() を抽象メソッドとして宣言するようになりました。 myfunc() は test() を呼び出します。これは子クラスに実装する必要があります。
class fish extends whale {
function __construct() { parent::__construct(); }
function test() { echo "So you managed to call me !!"; }
}
fish クラスでは、test() の実装を提供します。これにより、親クラスの抽象要件が満たされることが保証されます。
この設定により、クジラ クラスの myfunc() 内で Fish から test() 関数を呼び出すことができるようになります。
$fish = new fish();
$fish->test(); // Output: So you managed to call me !!
$fish->myfunc(); // Output: So you managed to call me !!
抽象クラスを使用することで、適切な継承が強制され、子クラスが必要なメソッドを実装することが保証されます。これにより、親クラスから子クラスの関数をシームレスに呼び出すことができます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3