⊗ppOpIhCOM 29 of 107 menu

Ülekatstud meetodi kutsumine OOP-s PHP-s

Ülekirjutamisel kaotab lapsklass juurdepääsu ülekatstud meetodile vanemas. Siiski on sellele võimalik juurde pääseda. Seda tehakse kasutades võtmesõna parent, mis viitab vanemaklassile.

Vaatame näidet, mil võib olla vajalik juurdepääs vanema meetodile. Olgu meil järgmine vanemaklass:

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

Oletame, et me laste klassis kirjutasime vanema meetodi üle:

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

Võib märgata, et ülekatstud meetodis teostatakse tingimuse korral tegelikult vanema meetodi kood. Tekib mittevajalik koodi dubleerimine.

Sellest saab lahti, kui kutsuda vanema meetodit. Teeme selle:

<?php class Student extends User { public function setName($name) { if (strlen($name) > 0) { parent::setName($name); // vanema meetod } else { echo 'õpilase nime viga'; } } } ?>

Antud on järgmine kood:

<?php class User { private $age; public function setAge($age) { if ($age >= 0) { $this->age = $age; } else { echo 'vaja vanust üle 0'; } } } class Employee extends User { public function setAge($age) { if ($age <= 120) { if ($age >= 0) { $this->age = $age; } else { echo 'vaja vanust üle 0'; } } else { echo 'vaja vanust alla 120'; } } } ?>

Klassis Employee parandage ja lihtsustage vanuse setterit, kasutades vanema originaalset meetodit.

Eesti
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Me kasutame saidi toimimiseks, analüüsi ja personaliseerimiseks küpsiseid. Andmete töötlemine toimub vastavalt Privaatsuspoliitikale.
nõustu kõigega häälesta keeldu