PHP类继承和扩展方法

时间:2012-01-27 21:44:40

标签: php oop inheritance

我想完成以下操作,但我不知道该怎么做:

class foo {
    function doSomething(){
        // do something
    }
}

class bar extends foo {
    function doSomething(){
        // do something AND DO SOMETHING ELSE, but just for class bar objects
    }
}

是否可以在使用doSomething()方法时执行此操作,还是必须创建新方法?

编辑:为了澄清,我不想在继承的方法中重述“做某事”,我只想在foo-> doSomething()方法中说出一次,然后在子类中构建它

3 个答案:

答案 0 :(得分:2)

你在那里做到了。如果您想在doSomething()中致电foo,只需在bar中执行此操作:

function doSomething() {
    // do bar-specific things here
    parent::doSomething();
    // or here
}

重述一个你提到的方法,通常被称为重载。

答案 1 :(得分:1)

您可以使用parent关键字执行此操作:

class bar extends foo {
    function doSomething(){
        parent::doSomething();
    }
}

答案 2 :(得分:0)

扩展类时,只需使用$this->method()来使用父方法,因为您没有覆盖它。当您覆盖它时,代码段将指向新方法。您可以通过parent::method()然后访问父方法。