为什么子类没有调用父类的构造函数?

时间:2015-02-23 11:17:16

标签: php inheritance constructor

来自php.net

  

如果孩子没有定义构造函数,那么它可以像普通的类方法一样从父类继承(如果它没有被声明为私有)。

根据我的理解,如果我没有在child中定义构造函数,那么将调用parent的构造函数。

所以这是我的例子,我用构造函数创建了一个父类。实例化子类和父类,但是会抛出以下警告: 警告:车辆缺少参数1 :: __ construct()

这是示例代码。

class vehicle{
    protected $type;
    function __construct($type){
        $this->type = $type;
        echo "Type chosen: $this->type";
    }
}

class car extends vehicle{

}

$vehicle = new vehicle("sport");
$car = new car;

1 个答案:

答案 0 :(得分:1)

好吧,它正在调用父类的构造函数。由于您没有为构造函数提供任何参数,因此当您声明$car对象时,它会向您发出有关缺少参数的警告。

你应该通过提供"类型"来初始化子类对象。参数如下:

$car = new car("family");