[英]calling parent constructor inside child constructor
我只是好奇地知道,創建一個僅用於調用父構造函數的子類構造函數是否是一個好主意。
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();
創建僅用於調用父構造函數的子構造函數是個好主意,還是這樣做還有其他優點?
類中__construct
調用的行為是:
__construct
它將被稱為 __construct
,則會調用父__construct
(如果存在)。 因此,如果您在子類中創建__construct
, 則不會調用父__construct
除非您使用parent::__construct()
明確指出它。
因此,如果子__construct
沒有發生任何嚴重的事情-您可以忽略它,並調用父__construct
。
另一方面-如果您在子__construct
執行其他一些初始化或其他操作,則除非您明確指出,否則它將不會調用parent::__construct
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.