如果我有这样的抽象类:
abstract class MyApp
{
public function init()
{
$this->stuff = $this->getStuff();
}
public function getStuff()
{
return new BlueStuff();
}
}
然后我有一个从这个抽象类扩展的类,如下所示:
class MyExtendedClass extends MyApp
{
public function init()
{
parent::init();
}
public function getStuff()
{
return new RedStuff();
}
}
如果我做:
$myobj = new MyExtendedClass();
$myobj->init();
为什么调用子类的 getStuff 方法?$this 不是在抽象类的上下文中吗?如果是这样,不应该调用抽象类的方法吗?
谢谢!