⊗ppOpIhOPM 28 of 107 menu

Overriding на родителски методи во ООП во PHP

Класата-потомок може да го override-ира методот на родителот, со креирање на метод со исто име. Ајде да погледнеме на пример. Нека имаме следнава родителска класа:

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

Ајде во класата-потомок да креираме метод со исто име:

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

Вообичаено, override-ирање на методи на родителот е потребно за да се смени или дополни однесувањето на тој метод. Ајде во нашиот случај да додадеме проверка на должината на името:

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

Ајде да се увериме дека се повикува токму override-ираниот метод. Прво, ајде да креираме објект од класата-потомок:

<?php $student = new Student; ?>

Сега ајде да го повикаме нашиот метод, пренесувајќи во него коректна вредност:

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

А сега ајде да го повикаме методот, пренесувајќи во него некоректна вредност. Како резултат ќе видиме фрлена исклучок:

<?php $student->setName(''); // грешка ?>

Во класата User направете гетер и сетер за возраста.

Во класата Employee override-ирајте го сетерот за возраста и направете во него проверка дали возраста е од 18 до 65 години.

Македонски
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј