2012-02-27 19 views
0

私はOO phpから始めていますので、私の無知を許してください。子クラスオブジェクトの親プロパティへのアクセス

私は

$object = new B; 
$object->show(); 

を行うと、私はクラス

class A{ 
    function show(){ 
     return 15; 
     } 
    } 

と子クラスB

class B extends A{ 
    function show(){ 
     return 25; 
     } 
    } 

ていると仮定すると、私は私が子供のプロパティにアクセスする意味、25を得ます。親プロパティにどのようにアクセスできますか。

私は$ object-> A :: show()、$ object :: show()を試しましたが、エラーが発生し続けています。あなたが親クラスでそれにアクセスするので、子クラスで機能ショーをオーバーライドする

答えて

4

あなたはオブジェクトデザインのコンフリクトを行いたいと思っていますか?親メソッドを上書きすると、子インスタンスの外側から親(::)が呼び出せません。あなたのデザインを見て、これを避ける方法を理解しようとします。

EDIT:これを呼び出すのあなたの例の 両方が無効である - 唯一の有効な私はBのオブジェクトでそれをやりたい

class B extends A{ 
    function show(){ 
    return parent::show(); 
    } 
} 
+0

実際の状況ではなく、私は学習していますので、さまざまな状況を回避しようとしています。あなたは私が望むものは不可能だと提案していますか? – ppp

+0

PHPではyes、C++の場合など、オブジェクトBは完全な機能を備えている必要があるため、親メソッドを直接呼び出す必要はないため、 – SergeS

1

あなたは

$object = new A(); 
$object->show(); 

クラスのオブジェクトをインスタンス化する必要があります親オブジェクト機能のショーをacccessする方法が今あります()と子クラスのインスタンス

+0

です。私はちょうど学んでいるので、私は持っていないが、私はこれがBオブジェクトでどのようにできるか知りたい。 – ppp

+0

あなたは子クラスshow funcitonの中からparent :: show()を使うことができます。これは2つの異なる値を返しているので、実際にはこれを行っている点はありません。 – clem

関連する問題