【发布时间】:2012-06-25 08:35:44
【问题描述】:
我想做这样的事情:
abstract class Foo
{
public function __construct()
{
echo 'This is the parent constructor';
}
abstract function __construct();
}
class Bar extends Foo
{
// constructor is required as this class extends Foo
public function __construct()
{
//call parent::__construct() if necessary
echo 'This is the child constructor';
}
}
但我在执行此操作时遇到致命错误:
Fatal error: Cannot redeclare Foo::__construct() in Foo.php on line 8
还有其他方法可以确保子类有构造函数吗?
【问题讨论】:
-
抽象类不会强制这样做,但接口会。
-
你为什么要这样想呢?我了解给定方法的需求,但是构造函数呢?
-
@Sebas 你可以用一个脚本做数十亿的事情,你不认为其中一个可能需要构造函数吗?
-
当然可以,但是从我的过去来看,强制一个类扩展另一个类来实现 a 构造函数有点奇怪!我相信你有你的理由,不用担心
标签: php oop constructor abstract-class