НОВИНКА!
Занимательная математика от Трепачёва. Присоединяйтесь к нам!
⊗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
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить