2010-07-16 46 views

回答

1

簡單......沒有在孩子同名的方法,在這種情況下,父類的方法會被孩子繼承,並調用$ x-> fun()將調用繼承的方法。

+0

如果我想有這種方法嗎? – liysd 2010-07-16 14:40:52

+0

如果你想擁有該方法,那麼你正在做一個明確的,受過教育的選擇來覆蓋父方法。因此,你正在使自己需要使用對parent :: init()的顯式調用;如果你希望執行該代碼。 – 2010-07-16 14:46:24

1

假設您的代碼實際上意味着是這樣的:

class P { 
    function fun() { 
    echo "P"; 
    } 
} 

class Ch extends P { 
    function fun() { 
    echo "Ch"; 
    } 

    function callParent{ 
    parent::fun(); 
    } 
} 

$x = new Ch(); 

你確實需要使用父::樂趣()調用P ::樂趣。

例如,如果您重寫了必須調用的方法,以便正確初始化父類,那麼這可能會很有用。

像:

class Parent { 
    function init($params) { 
    // some mandatory code 
    } 
} 

class Child extends Parent { 
    function init($params) { 
    parent::init(); 
    // some more code 
    } 
} 
相關問題