如果我有一个由许多其他类扩展的父类,并且我想确保父类的构造函数始终运行,声明构造函数 final
是不是一个坏主意>?
我正在考虑做这样的事情:
class ParentClass {
public final function __construct() {
//parent class initialization...
$this->construct();
}
protected function init() {
echo 'constructing<br>';
}
}
class ChildClass extends ParentClass {
protected function init() {
//child class initialization
echo 'constructing child<br>';
}
}
这样子类可以有某种构造函数,而父类的构造函数将始终执行。这是不好的做法吗?
最佳答案
声明一个 final
__construct
确保任何扩展你的类的人都不能实现同名的方法。从表面上看,这似乎意味着没有其他人可以为此类的子类声明构造函数,但事实并非如此,因为 ClassName()
的 PHP 4 样式作为构造函数的替代名称仍然可以正常工作。实际上,将构造函数声明为 final 在 PHP 中对您毫无帮助。
关于php - 在 PHP 中声明一个类的 ctor 'final' 是不好的做法吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1993587/