在基类中使用将在派生类中定义的方法是一种很好的做法吗?例如:PHP。在基类中使用方法将在派生中定义
abstract class CApplication {
use TSingleton;
protected final function singletonInstanceInit() {
if (php_sapi_name() == 'cli') {
$this->initCLIApp();
}
else {
$this->initWebApp();
}
}
}
abstract class CWebApplication extends CApplication {
protected function initWebApp() { }
}
abstract class CCLIApplication extends CApplication {
protected function initCLIApp() { }
}
您应该将它们定义为基类中的抽象函数。 – Leigh 2012-07-24 13:27:06
在什么情况下你必须这样做?并且不能避免 – 2012-07-24 18:08:08
你可以像调用CWebApplication :: initWebApp()一样静态调用它们,但是你必须确保包含类文件,并且我不建议这样做只是为了解决 – 2012-07-24 18:11:15