php - 在 PHP 中声明一个类的 ctor 'final' 是不好的做法吗?

标签 php class constructor final

如果我有一个由许多其他类扩展的父类,并且我想确保父类的构造函数始终运行,声明构造函数 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/

相关文章:

php - 替换两个字母之间的连字符,但不替换两个数字之间的连字符 (PHP)

AngularJS:需要复制继承的依赖项?

c++ - 为什么我得到一个奇怪的答案?

c++ - 具有模板化构造函数(其他类型)的模板化类

Java 继承错误 : Implicit Super Constructor is undefined

php - SQL connect.php 安全风险?

php - 左边距在文本中不能正常工作

python - 如何将 functools.partial 用于类方法?

php - 从 php 以固定行数导出 csv

Java战舰使用arraylist : comparing user input to array list