今天突然发现需要在父类中调用子类的方法,之前一直都没这么用过,通过实践发现也可以。例子如下:
代码如下 |
复制代码 |
/**
* 父类调用子类方法 基类
* @author LNMP100
*
*/
class BaseApp
{
/**
* 调用子类方法
* @version 创建时间:2013-07-10
*/
function _run_action()
{
$action = "index";
$this->$action();
}
}
class DefaultApp extends BaseApp
{
/**
* 此方法将在父类中调用
*/
function index()
{
echo "DefaultApp->index() invoked";
}
function Go(){
//调用父类
parent::_run_action();
}
}
$default=new DefaultApp();
$default->Go();
//将显示DefaultApp->index() invoked
?>
|
我们在父类的go()方法里面调用了
$default->Go();
swim是子类定义的方法(注意,我们并没有在父类中定义abstract function swim()),说明了这不是多态。我们不仅调用了方法,还调用了成员,是ok的。