如何从子实例中递归地调用覆盖父函数?由于我没有使用静态方法,我不能使用parent::method()
,但必须做某种不同的事情。我有一种感觉,我的问题有更好的方法,可能是通过设计模式。这是我的阶级结构:在php中调用覆盖父函数的子函数
class Creature {
public function eat() {
// feed and digest
}
}
class Mammal extends Creature {
public function eat() {
// gather and chew
}
}
class Human extends Mammal {
public function eat() {
// have a meal
}
}
class WesternPerson extends Human {
public function eat() {
// use knife & fork
}
}
$me = new WesternPerson();
$me->eat();
调用eat()
应从特殊递归去向上到非常抽象类。最简单的方法是,如果我可以在被覆盖的函数中调用具有相同名称的父函数。但我知道,它被覆盖,所以我不能。
' parent :: method()'不是一个静态调用(虽然它看起来像它)。只要使用那个就可以了。 – Wrikken
另请参阅:http://stackoverflow.com/a/16925581/2153758 – bwoebi
非常感谢!由于'::'运算符,我显然感到困惑。我现在很清楚。 – quape