php构造函数的继承方法

更新时间:2023-05-25 21:55

构造函数不支持支持继承,而是被调用(其他语言大概都一样(java,dart,ts等),很多人说能继承本人不这样认为...)

实际上是自己自动添加一个自己的构造方法,然后调用父类
比如:

 

<?php
class Test{
    protected function __construct() {
    }
}

class Test2 extends Test{}

$a= new Test2();  //报错
其实相当于子类默认添加一个为以下结构的构造函数:
 
class Test2 extends Test{
    protected function __construct() {
        parent::__construct();
    }
}

证明不能被继承的例子:
<?php
class Test{
    protected function __construct($a) {
    }
}

class Test2 extends Test{
    public function __construct($a,$b) {
        
    }
}

$a= new Test2(123,123);
如果construct能继承的话,那么根据继承的特性,函数声明必须与 父类相同,但是以上代码可以正常运行