我想完成以下操作,但我不知道该怎么做:
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()方法中说出一次,然后在子类中构建它
答案 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()
然后访问父方法。