2010-07-16 30 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 
    } 
} 
相关问题