書き換え:
は、サブクラスが親クラスのメソッドを継承し、そのサブクラスが内部で同じメソッドを定義している場合、新しく定義されたこのメソッドがオーバーライドされることを意味します。親クラスの継承メソッドであり、サブクラスは内部定義されたメソッドのみを呼び出すことができます。
次の要件があります:
1. 親クラスとサブクラスにまったく同じパラメーターと名前を持つメソッドがある場合、サブクラスのメソッドがオーバーライドされます。親クラス。クラスメソッド。
メソッド カバレッジを達成するには、パラメーターに一貫性がある必要があります。パラメータの数が一致しない場合、エラーが報告されます (これには、上記のメソッドのオーバーロードが含まれます)。メソッド名が一致しない場合、上書きされるのはサブクラスの新しく定義されたメソッドのみです。
2. メソッド カバレッジを実装する場合、アクセス修飾子は異なっていてもかまいませんが、サブクラスのアクセス スコープは親クラスのアクセス スコープ以上である必要があります。
これはphpなどの言語の設計ルールです。私が理解しているのは、高いレベルにあるものにアクセスするほうが簡単で、低いレベルにあるものにアクセスしたい場合は、より高い権限が必要であるということです。 パラメータと名前は同じである必要があります。サブクラスが親クラスと同じ名前である必要はありません。 では、パラメーターと名前が同じであることが必要です。具体的には、パラメーターの数は親クラスと同じである必要がありますが、パラメーター名は同じである必要はありません。つまり、渡されるパラメータの名前は、渡される数値が同じであれば任意です。 コードを見てください:<?php class shao { public function sasa($name){ echo $name,'狗!<br/>'; } } class zhen extends shao{ public function aaa() { echo '猫<br/>'; } } $lli = new zhen(); $lli->aaa(); $lli->aaa('binghh'); ?>
<?php class fu { public function text(){ echo '父类'; } public function textt(){ echo '父亲'; } } class erzi extends fu{ public function text() { parent::text();//我要父类的东西 echo '儿子';//重写 } } $shili = new fu(); $erzi = new erzi(); $erzi->text(); ?>
2. オーバーロードは、アクセス許可、戻り値の型、およびスローされた例外を通じて行うことはできません;
3.例外のタイプとメソッドの数はオーバーロードに影響しません。
<?php class fu { public function text(){ echo '父类'; } public function textt(){ echo '父亲'; } } class erzi extends fu { function test($name) { //方法重载 parent::text();//我要父类的东西 echo "erzi",$name;//重写 } } $erzi = new fu(); $erzi-> text("123"); ?>
以上がPHPのリロードとリライトの違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。