⊗ppOpIhCOM 29 of 107 menu

Повикување на преоптоварениот метод во ООП во PHP

При преоптоварување, потомокот ја губи можноста за пристап до преоптоварениот метод на родителот. Сепак, сепак е можно да се пристапи до него. Ова се прави со клучниот збор parent, кој што укажува на родителската класа.

Да погледнеме на пример, кога може да ни треба пристап до родителскиот метод. Да претпоставиме дека ја имаме следнава родителска класа:

<?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) { if (strlen($name) > 0) { $this->name = $name; } else { echo 'student name error'; } } } ?>

Може да се забележи дека во преоптоварениот метод при исполнување на условот, всушност се извршува кодот на родителскиот метод. Се добива непотребно дуплирање на кодот.

Може да се ослободиме од него, ако се повика методот на родителот. Ајде да го направиме ова:

<?php class Student extends User { public function setName($name) { if (strlen($name) > 0) { parent::setName($name); // метод на родителот } else { echo 'student name error'; } } } ?>

Даден е следниот код:

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

Во класата Employee поправете и поедноставете го сетерот за возраста, користејќи го оригиналниот метод на родителот.

Македонски
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
Ние користиме колачиња за работата на веб-страната, анализа и персонализација. Обработката на податоци се врши во согласност со Политиката за приватност.
прифати ги сите прилагоди одбиј