2016-08-17 4 views
0

これは、メソッドのアクセスタイプが EX公開されている場合は、子クラスのメソッドは、親メソッドをオーバーライドすることができます例です。は、プライベートメソッドは、子クラスで乗り越えでき

class Foo { 

    public function fun1() { 
    echo "Hello World"; 
    } 

    public function callMe(){ 
    $this->fun1(); 
    } 
} 


class Bar extends Foo { 

    public function fun1(){ 
    echo "check this out"; 
    } 
} 

$bar = new Bar(); 
$bar->callMe(); //this would print "check this out" 

しかしfun1がある場合親クラスFooprivateアクセス権が与えられていれば、メソッドはもはやライドされなくなります。

例:

class Foo { 

    private function fun1() { 
    echo "hello world"; 
    } 

    public function callMe(){ 
    $this->fun1(); 
    } 
} 

この場合、出力はhello worldあろう。
アクセスタイプがprivateであっても、拡張クラスでメソッドfun1をオーバーライドすることができるかどうかを知りたいですか?アクセス修飾子privateを持つメソッドがオーバーライドまたは子クラスへのアクセスものの存在するがないので

答えて

-1

はNOPHPに関するしかし、OOPの概念あたり見当がつかない。それを子クラスにオーバーライドしたい場合は、アクセス修飾子をまたはprotected

+2

のいずれかに変更してみてください。答えがわからない人は誰ですか?それとも答えに欠けているものが見えますか? – Rahul

関連する問題