2016-12-15 4 views
-1

こんにちは、私は今、私はクラス「C」を書くための機能オーバーライド親::機能

class A{ 
    static function a(){ 
     return 'aaa'; 
    } 
} 
class B extends A{ 
    static function b(){ 
     //some code 
     return parent::a(); 
     //some code 
    } 
} 

を持つクラスを必要としている、私は '別のものを返しますが、オーバーライドBを望んでいないし、変更方法を必要とする:: b()関数は本当に大きく、正常に動作するためです。

class C extends D{ 
    static function b(){ 
     return parent::b(); 
    } 
} 

class D extends B{ 
    static function a(){ 
     return 'ddd'; 
    } 

} 
C::b() //return aaa, but I need ddd 
+0

なぜあなたは 'b'から' parent :: a'を呼びますか?どうして 'self :: a' /' static :: a'?なぜこのすべてが静的で始まるのですか? – deceze

+0

decezeが言ったように、Bクラス – Yoleth

+0

クラスAとBが私のものではないので、parent :: a()の代わりにself :: a()を使用してください。静的メソッドなので静的です:) –

答えて

0

これは古い投稿ですが、わかりましたか? あなたの例ではC::b()にはBからのparent::bが返されますが、Dではありません。あなたは返信をD::aから返すことを望んでいたでしょうC::a()

関連する問題