⊗ppOpIhCOM 29 of 107 menu

Oproepen van overschreven methode in OOP in PHP

Bij overschrijven verliest de child class toegang tot de overschreven methode van de ouder. Echter, het is toch mogelijk om er toegang toe te krijgen. Dit wordt gedaan met behulp van het sleutelwoord parent, dat verwijst naar de parent class.

Laten we een voorbeeld bekijken wanneer we toegang nodig kunnen hebben tot de methode van de ouder. Stel dat we de volgende parent class hebben:

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

Stel dat we in de child class de methode van de ouder hebben overschreven:

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

Je kunt opmerken dat in de overschreven methode, wanneer aan de voorwaarde wordt voldaan, feitelijk de code van de methode van de ouder wordt uitgevoerd. Dit resulteert in onnodige code-duplicatie.

We kunnen dit elimineren door de methode van de ouder aan te roepen. Laten we dit doen:

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

Gegeven de volgende 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 de class Employee, verbeter en vereenvoudig de age setter door gebruik te maken van de originele methode van de ouder.

Nederlands
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Wij gebruiken cookies voor de werking van de site, analyse en personalisatie. De verwerking van gegevens gebeurt volgens het Privacybeleid.
alles accepteren aanpassen weigeren