class TopParent
{
protected function foo()
{
$this->bar();
}
private function bar()
{
echo 'Bar';
}
}
class MidParent extends TopParent
{
protected function foo()
{
$this->midMethod();
parent::foo();
}
public function midMethod()
{
echo 'Mid';
}
public function generalMethod()
{
echo 'General';
}
}
现在的问题是,如果我有一个扩展 MidParent 的类,因为我需要调用
class Target extends MidParent
{
//How to override this method to return TopParent::foo(); ?
protected function foo()
{
}
}
所以我需要这样做:
$mid = new MidParent();
$mid->foo(); // MidBar
$taget = new Target();
$target->generalMethod(); // General
$target->foo(); // Bar
更新 顶级父级是 ActiveRecord 类,中间是我的模型对象。我想在 yii ConsoleApplication 中使用模型。我在这个模型中使用“用户”模块,控制台应用程序不支持这个模块。所以我需要覆盖调用用户模块的方法afterFind。因此,目标类是覆盖模型中某些方法的类,该模型使用控制台应用程序不支持的某些模块。