从父类调用子类函数
在 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();
}
在更新的鲸鱼类中,我们现在将 myfunc() 和 test() 声明为抽象方法。 myfunc() 会调用 test(),需要在子类中实现。
class fish extends whale {
function __construct() { parent::__construct(); }
function test() { echo "So you managed to call me !!"; }
}
在fish类中,我们提供了test()的实现。这确保了父类的抽象要求得到满足。
通过此设置,我们现在可以在 Whale 类的 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