这段代码为何会输出father?求合理解释?
<?php class father { public function __construct() { $this->init(); } private function init() { echo "father\n"; } } class son extends father { public function init() { echo "son\n"; } } $son = new son();
面向对象 php
在php中,实例化子类的时候会自动调用父类的构造方法,如果子类不使用父类的构造方法,需要在子类中重写构造方法,所以你的例子会输出father。 如果你不想使用父类的构造方法:
<?php class father { public function __construct() { $this->init(); } private function init() { echo "father\n"; } } class son extends father { public function __construct(){} public function init() { echo "son\n"; } } $son = new son();
php如何体现多态和封装
php类的成员变量没有声明
面向对象的访问控制为什么要基于Class而不是基于Object
在类的静态方法中可以通过(本身的)实例访问其私有非静态属性
PHP 定义成员变量和传参数的区别?
php继承的时候父类的构造函数怎样才能自动执行?