ホームページ >バックエンド開発 >PHPチュートリアル >PHPサブクラスでの親クラスのプライベートメソッドのオーバーライドに関する質問
<?php class A{ private function test(){ echo "testA"; } } class B extends A{ public function test($a){ echo "testB".$a; } } $var1=new B; $var1->test(10);?>
<?php class A{ private function test(){ echo "testA"; } } class B extends A{ private function test($a){ echo "testB".$a; } public function test1($a){ $this->test($a); } } $var1=new B; $var1->test1(10);?>
エラー メッセージを見ても何が起こっているのかわかりませんか?
エラーメッセージを見ても何が起こっているのか分かりませんか?
class B extends A{ public function test($a){ echo "testB".$a; }}
書き換えではなく上書きです
上書きの条件は保護方法とパラメータが一致していることです
Javaから強制されるようなものは本来の意図に反します
C# ですら「動的言語」が登場しつつあり、php は徐々に静的になっていきます。これは一歩後退ではないでしょうか。
書き換えではなく上書きです
上書きの条件は保護方法とパラメータが一致していることです
Javaから強制されるこのようなことはphpの本来の意図に反します、そして最終的にはphpにつながります
の死 C#ですら「動的言語」が立ち上げられ、PHPは徐々に静的になってきているのではないでしょうか。
<?php class A{ private function test(){ echo "testA"; } } class B extends A{ public function test($a){ echo "testB".$a; } } $var1=new B; $var1->test(10);?>
<?php class A{ private function test(){ echo "testA"; } } class B extends A{ private function test($a){ echo "testB".$a; } public function test1($a){ $this->test($a); } } $var1=new B; $var1->test1(10);?>
B::test が再定義される、または書き換えられる (上書きされる)
php ではオーバーロードがサポートされない
それについては、いわゆる構文チェックがすべてです
B::test は再定義または書き換え (上書き) です。
オーバーロードは php ではサポートされていません
いわゆる文法チェックに関しては、それらはすべてナンセンスで、php を強制的に遅くするために使用されます
そうですね、そうです
B::test は再定義、または書き換え (上書き) です
php でのオーバーロードはサポートされていません
のようにいわゆる文法チェックはすべてナンセンスです。php
ただし、フォームは書き換えられます