在PHP Constructors and Destructors documentation它規定如果子類不定義構造函數,是否調用父構造函數?
注:父構造函數則不會暗中調用如果子類 定義構造函數。爲了運行父構造函數,需要在子構造函數中調用 parent :: __ construct()。
但是如果子類沒有調用構造函數,父類構造函數仍然會被調用呢?或者我們應該創建一個調用父構造函數的構造函數嗎?
IE:
class BaseClass {
function __construct() {
print "In BaseClass constructor\n";
}
}
class SubClass extends BaseClass {
function __construct() {
parent::__construct();
}
}
也許[手冊](http://www.php.net/manual/en/language.oop5.decon.php)最近更新了,但它確實聲明,「如果孩子沒有定義構造函數,那麼它就像普通的類方法一樣可以從父類繼承(如果它沒有被聲明爲私有的)。「 – MrWhite
@ w3d感謝您的更新:)。 –
你甚至可以聲明一個構造函數爲private嗎?這似乎首先打敗了上課的目的。 – eggmatters