⊗ppOpIhOPM 28 of 107 menu

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

Дъщерният клас може да пренапише метод на родителя, като създаде метод със същото име. Нека разгледаме пример. Да предположим, че имаме следния родителски клас:

<?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) { } } ?>

Обикновено пренаписването на методи на родителя се използва, за да се промени или допълни поведението на този метод. В нашия случай нека добавим проверка на дължината на името:

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

Нека се уверим, че се извиква именно пренаписаният метод. Първо, нека създадем обект от дъщерния клас:

<?php $student = new Student; ?>

Сега нека извикаме нашия метод, като му подадем коректна стойност:

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

А сега нека извикаме метода, като му подадем некоректна стойност. В резултат ще видим хвърлено изключение:

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

В класа User създайте гетър и сетър за възрастта.

В класа Employee пренапишете сетъра за възраст и направете в него проверка, че възрастта е от 18 до 65 години.

Български
AfrikaansAzərbaycanবাংলাБеларускаяČeštinaDanskDeutschΕλληνικά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
Ние използваме бисквитки за работата на сайта, анализ и персонализация. Обработката на данни се извършва в съответствие с Политика за поверителност.
приемам всички настройки отхвърляне