⊗ppOpIhOPM 28 of 107 menu

Přepsání metod rodiče v OOP v PHP

Třída potomek může přepsat metodu rodiče vytvořením metody se stejným názvem. Podívejme se na příklad. Předpokládejme, že máme následující rodičovskou třídu:

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

Vytvořme v třídě potomkovi metodu se stejným názvem:

<?php class Student extends User { public function setName($name) { } } ?>

Přepsání metod rodiče obvykle slouží k tomu, aby se změnilo nebo doplnilo chování této metody. V našem případě přidejme kontrolu délky jména:

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

Přesvědčme se, že je volána právě přepsaná metoda. Nejprve vytvořme objekt třídy potomka:

<?php $student = new Student; ?>

Nyní zavolejme naši metodu, předáme-li jí korektní hodnotu:

<?php $student->setName('john'); ?>

A nyní zavolejme metodu, předáme-li jí nekorektní hodnotu. Výsledkem uvidíme vyhozenou výjimku:

<?php $student->setName(''); // chyba ?>

Ve třídě User vytvořte getter a setter věku.

Ve třídě Employee přepište setter věku a proveďte v něm kontrolu, že věk je od 18 do 65 let.

Čeština
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяDanskDeutschΕλληνικά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
Používáme soubory cookie pro fungování webu, analýzu a personalizaci. Zpracování údajů probíhá v souladu s Zásadami ochrany osobních údajů.
přijmout vše přizpůsobit odmítnout