⊗ppOpIhCOM 29 of 107 menu

Felülírt metódus hívása OOP-ban PHP-ben

A felülírás során a gyermekosztály elveszíti a hozzáférést a felülírt szülői metódushoz. Azonban továbbra is elérhetővé tehető. Ezt a parent kulcsszóval tehetjük meg, ami a szülőosztályra mutat.

Nézzünk egy példát, amikor szükségünk lehet a szülői metódus elérésére. Tegyük fel, hogy a következő szülőosztályunk van:

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

Tegyük fel, hogy a gyermekosztályban felülírtuk a szülő metódusát:

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

Megfigyelhető, hogy a felülírt metódusban a feltétel teljesülésekor gyakorlatilag a szülői metódus kódja fut le. Ez szükségtelen kódismétléshez vezet.

Ettől megszabadulhatunk, ha meghívjuk a szülő metódusát. Tegyük ezt meg:

<?php class Student extends User { public function setName($name) { if (strlen($name) > 0) { parent::setName($name); // szülői metódus } else { echo 'student name error'; } } } ?>

Adott a következő kód:

<?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'; } } } ?>

A Employee osztályban javítsa az életkor setter metódusát, használva a szülő eredeti metódusát.

Magyar
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
A weboldal működéséhez, elemzéshez és személyre szabáshoz sütiket használunk. Az adatfeldolgozás a Adatvédelmi irányelvek szerint történik.
összes elfogadása beállítás elutasítás