⊗ppOpIhCOM 29 of 107 menu

Aufruf einer überschriebenen Methode in OOP in PHP

Beim Überschreiben verliert das Kind den Zugriff auf die überschriebene Methode des Elternteils. Dennoch kann man weiterhin darauf zugreifen. Dies geschieht mit dem Schlüsselwort parent, das auf die Elternklasse verweist.

Schauen wir uns ein Beispiel an, bei dem wir Zugriff auf die Elternmethode benötigen könnten. Angenommen, wir haben die folgende Elternklasse:

<?php class User { private $name; public function setName($name) { $this->name = $name; } public function getName() { return $this->name; } } ?>

Angenommen, wir haben in der Kinderklasse die Methode des Elternteils überschrieben:

<?php class Student extends User { public function setName($name) { if (strlen($name) > 0) { $this->name = $name; } else { echo 'student name error'; } } } ?>

Man kann feststellen, dass im überschriebenen Methode bei Erfüllung der Bedingung praktisch der Code der Elternmethode ausgeführt wird. Es ergibt sich eine unnötige Code-Duplikation.

Man kann sie vermeiden, indem man die Methode des Elternteils aufruft. Tun wir das:

<?php class Student extends User { public function setName($name) { if (strlen($name) > 0) { parent::setName($name); // Methode des Elternteils } else { echo 'student name error'; } } } ?>

Gegeben ist der folgende Code:

<?php class User { private $age; public function setAge($age) { if ($age >= 0) { $this->age = $age; } else { echo 'need age more 0'; } } } class Employee extends User { public function setAge($age) { if ($age <= 120) { if ($age >= 0) { $this->age = $age; } else { echo 'need age more 0'; } } else { echo 'need age less 120'; } } } ?>

In der Klasse Employee korrigieren Sie den Setter für das Alter, vereinfachen Sie ihn, indem Sie die ursprüngliche Methode des Elternteils verwenden.

Deutsch
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wir verwenden Cookies für den Betrieb der Website, Analyse und Personalisierung. Die Datenverarbeitung erfolgt gemäß der Datenschutzerklärung.
alle akzeptieren anpassen ablehnen