【发布时间】:2018-01-31 23:56:01
【问题描述】:
我只是想知道创建一个子类构造函数只是为了调用父构造函数是否是个好主意。
class A {
public function __construct() {
echo 'I am in: '.__CLASS__.'<br/>';
}
public function getData() {
echo 'I am in: '.__METHOD__.'<br/>';
}
}
class B extends A {
public function __construct() {
parent::__construct();
echo 'I am in: '.__CLASS__.'<br/>';
}
public function getDataFromB(){
echo 'I am in: '.__METHOD__.'<br/>';
}
}
$objB = new B();
$objB->getDataFromB();
现在在下面的例子中我们可以达到同样的效果:
class A {
public function __construct() {
echo 'I am in: '.__CLASS__.'<br/>';
}
public function getData() {
echo 'I am in: '.__METHOD__.'<br/>';
}
}
class B extends A {
public function getDataFromB(){
echo 'I am in: '.__METHOD__.'<br/>';
}
}
$objB = new B();
$objB->getDataFromB();
问题:
仅为调用父构造函数而创建子构造函数是个好主意,还是这样做还有其他好处?
【问题讨论】:
-
这简直是多余的,句号。
-
如果你不在子类中重写父构造函数,它会自动被调用。所以除非你打算实现额外的功能,否则它是没有意义的。
标签: php oop inheritance constructor