php - 禁止重载 PHP 类构造函数

标签 php oop overriding

是否有可能 - 在 PHP 中 - “禁用”覆盖类构造函数的功能?

只是为了让场景更清晰: 我有一个带有构造函数的抽象类 A。这个构造函数对于类的工作是必不可少的。 然后我有一些“ sibling ”,它们“扩展”了抽象类 A。他们 - 显然 - 必须扩展那个类,但我不希望他们接触构造函数。

我知道可以调用 parent::__construct(),但那样我就不会强制使用该模式。如果我的一位同事正在实现一个扩展我的抽象类的新类,我不希望出现混淆。当然,所有内容都已记录在案,但你们都知道阅读内容时的情况;-)

关于如何禁用构造函数的覆盖有什么想法吗? (在那种情况下,我会创建一个可以覆盖的抽象 init() 方法,但我的“抽象构造函数”将调用那个方法)。或者任何其他想法来实现这种通缉情况?

谢谢! 尼克

最佳答案

当您的类是抽象类时,您可以将构造函数声明为 final。

public final function __construct(){}

在此构造函数中,您可以调用 init() 方法。

关于php - 禁止重载 PHP 类构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11453601/

相关文章:

javascript - 使用 JQuery Ajax 提交表单不在服务器中工作,但在本地主机中工作 codeigniter

javascript - 从操作表单调用 jQuery

java - 现实世界中的设计模式

php - Magento 安装脚本中的 ALTER TABLE 不使用 SQL

PHP : How to calculate the remaining time in minutes?

java - 为库的每个实例单独记录器

c# - 在什么情况下,类不会受到可访问性级别的影响?

php - 从 Magento 的管理面板导航中删除项目

java - 重写 .equals() 方法的问题

c# - 有没有办法在 C# 中只向方法添加代码而不完全覆盖它?