2009-12-31 48 views
2

例如:我有一個名爲ParentClass的類。父類具有這樣的構造:繼承子類後,如何在繼續使用父類的構造函數時重載它?

function __construct($tpl) { 
    // do something with the $tpl 
} 

當創建父類的新實例,我必須提供$ TPL參數是這樣的:

$p = new ParentClass('index'); 

然後有一個ChildClass擴展父類。我希望ChildClass的構造函數將$ tpl提供給ParentClass,但我當然不想只是一個ParentClass的實例,而是ChildClass的實例。

因此,創建一個新的ChildClass實例時,我希望它看起來像:

$foo = new ChildClass(); 

但在內部,我希望它提供了「索引」,以父類的構造函數。

我該如何在PHP中實現這一目標?

回答

3
class ChildClass extends ParentClass { 
    public function __construct() { 
     parent::__construct('index'); 
    } 
} 
1

隨着parent::__construct()可以調用parent的構造。

class ChildClass extends ParentClass 
{ 
    function __construct() 
    { 
     parent::__construct('index'); 
    } 
} 
1

試試這個:

class ChildClass extends ParentClass{ 
    function __construct($tpl) { 
    parent::__construct($tpl); 
    } 
} 

現在創建childclass實例:

$p = new ChildClass('index'); 

注:在你的子類,你應該 包括父類。

+0

謝謝!我想要實現的是,我不必再使用ChildClass來提供'索引'。這就是ChildClass的重點:-) – openfrog

1

您可以從ChildClass的構造函數中調用parent::_construct('index');。這將使用index構造基類。

相關問題