【发布时间】:2012-11-18 18:51:40
【问题描述】:
如果我有这样的抽象类:
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 不是在抽象类的上下文中吗?如果是这样,抽象类的方法不应该被调用吗?
谢谢!
【问题讨论】:
-
你试过了吗?你得到了什么? (除了语法无效的错误吗?)