Umschreiben:
bedeutet, dass, wenn eine Unterklasse einige Methoden der übergeordneten Klasse erbt und die Unterklasse intern dieselbe Methode definiert, diese neu definierte Methode überschrieben wird Die geerbte Methode der übergeordneten Klasse, und die Unterklasse kann nur ihre intern definierten Methoden aufrufen.
hat die folgenden Anforderungen:
1 Wenn eine übergeordnete Klasse und eine Unterklasse eine Methode mit genau denselben Parametern und Namen haben, überschreibt die Unterklassenmethode diese Methode der übergeordneten Klasse.
Die Parameter müssen konsistent sein, um eine Methodenabdeckung zu erreichen. Wenn die Anzahl der Parameter inkonsistent ist, wird ein Fehler gemeldet (dies führt zu einer Überlastung der oben genannten Methoden). Wenn die Methodennamen inkonsistent sind, werden sie nicht überschrieben, sondern nur die neu definierten Methoden der Unterklasse.2. Bei der Implementierung der Methodenabdeckung können die Zugriffsmodifikatoren unterschiedlich sein, aber der Zugriffsbereich der Unterklasse muss größer oder gleich dem Zugriffsbereich der übergeordneten Klasse sein .
Dies ist wahrscheinlich die Designregel von Sprachen wie PHP. Ich verstehe, dass es einfacher ist, auf Dinge auf einer höheren Ebene zuzugreifen. Wenn Sie auf Dinge auf einer niedrigeren Ebene zugreifen möchten, müssen Sie über höhere Berechtigungen verfügen. erfordert, dass die Parameter mit dem Namen übereinstimmen. Es ist nicht erforderlich, dass die Unterklasse denselben Namen wie die übergeordnete Klasse hat. erfordert, dass die Parameter und Namen identisch sind. Insbesondere muss die Anzahl der Parameter mit der der übergeordneten Klasse übereinstimmen, nicht jedoch die Parameternamen. Das heißt, der Name der übergebenen Parameter kann beliebig sein, solange die übergebene Nummer dieselbe ist. Sehen Sie sich den Code an:<?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. Überladung kann nicht durch Zugriffsberechtigungen, Rückgabetypen und ausgelöste Ausnahmen erfolgen; Der Ausnahmetyp und die Anzahl der Methoden haben keinen Einfluss auf die Überladung.
<?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"); ?>
Override ist Umschreiben
Überlastung ist Überladung
Weitere Informationen zum Umschreiben und Überladen finden Sie auf der chinesischen PHP-Website:
PHP-Video-TutorialDas obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen PHP-Neuladen und Umschreiben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!