拿這個例子:當派生類被實例化時,抽象類構造函數是不是隱式調用的?
abstract class Base {
function __construct() {
echo 'Base __construct<br/>';
}
}
class Child extends Base {
function __construct() {
echo 'Child __construct<br/>';
}
}
$c = new Child();
從C#背景的,我希望可以將輸出爲
基地__construct
兒童__construct
但是,實際的輸出只是
Child __construct
不明確說明這一點,但它們暗示如果子類沒有構造函數,那麼父構造函數將被調用。真的嗎? – andrew 2011-02-09 23:03:41
是的:如果子類沒有定義一個構造函數,父類的沒有被覆蓋,所以被調用;;;;引用手冊:如果子類定義了構造函數**,則父類構造函數不會隱式調用**。 – 2011-02-10 06:32:08
@PascalMARTIN謝謝你,四處張望試圖驗證。接受了一點搜索。 – 2012-10-29 00:22:56