2012-01-27 12 views
0

は、私は次のことを達成したいが、私はそれを行う方法がわからないんだけど:PHPクラスの継承と拡張メソッド

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()メソッドを使用して、この中に操作を行うことが可能であり、またはIを行います新しいメソッドを作成する必要がありますか?

編集:明確にするために、継承されたメソッドで何かをやり直す必要はありません。私はfoo-> doSomething()メソッドで一度それを記述し、子クラス。

答えて

2

あなたはすぐそこにいました。あなたはfoodoSomething()を呼び出したい場合は、単にbarでこれを行う:

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

そして、あなたが言及する方法を修正再表示し、一般のオーバーロードと呼ばれています。

+0

これは私が必要としていたものです。ありがとうございました! – Matthew

1

あなたはparentキーワード使ってこれを行うことができます:あなたはそれを上書きしていないとして、あなたは、単に、親メソッドを使用する$this->method()を使用することができますクラスを拡張する場合

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

を。上書きすると、スニペットは新しいメソッドを指します。親メソッドにはparent::method()でアクセスできます。