PHP-php类继承的时候为什么要调用父类的构造函数?

UI设计界面 UI设计界面 主题:1059 回复:2190

PHP-php类继承的时候为什么要调用父类的构造函数?

灵芸 发布于 2016-12-26 字数 355 浏览 1161 回复 2

构造函数用于初始化对象,比如:
$a = new A($str1,$str2);

这里都好理解,不过看到过很多代码,class B extends A{},但是B类中又有诸如 parent::__constract($pra1,$pra2);调用父类构造函数的方法。

既然B是从A继承过来的一个类模板,那A中有的方法B中都有,为什么还要再在子类中调用父类的构造函数呢? 还是说在某种特定的情况下,数据会不完整?

.

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

支持 Markdown 语法,需要帮助?

评论(2

浮生未歇 2017-07-15 2 楼

我的理解是这样,当父类的构造函数是有参函数时,说明在实例化时必须传入参数,那么子类继承的时候就必须在构造函数中调用父类构造函数并传参。

晚风撩人 2017-06-06 1 楼

子类在继承父类后,会拥有父类的属性和方法,这是继承的特性。子类在构造函数会首先调用父类的构造函数来实例化父类的属性,然后调用子类的构造函数,一般你不写,并不表示没有调用,而是首先调用了父类的无参构造函数,如果父类的某些属性需要在父类构造函数中特殊实例化,则你必须显示的调用父类的有参构造函数,这样保证子类属性的完整性。