Запіс на курсы па HTML, CSS, JavaScript, PHP, Python, фрэймворкам і CMS,
а таксама: дапамога ў пошуку працы і заказаў, стажыроўка на рэальных праектах→
⊗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 гадоў.

byenru