今天突然發現需要在父類中調用子類的方法,之前一直都沒這麼用過,通過實踐發現也可以。例子如下:
代碼如下 復制代碼<?php
/**
* 父類調用子類方法 基類
* @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的。