Vecāku metožu pārrakstīšana OOP PHP
Bērnu klase var pārrakstīt vecāka metodi, izveidojot metodi ar tādu pašu nosaukumu. Apskatīsim piemēru. Pieņemsim, ka mums ir šāda vecāku klase:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Bērnu klasē izveidosim tādas pašas nosaukuma metodi:
<?php
class Student extends User {
public function setName($name) {
}
}
?>
Parasti vecāka metodes pārrakstīšana ir nepieciešama, lai mainītu vai papildinātu šīs metodes darbību. Mūsu gadījumā pievienosim vārda garuma pārbaudi:
<?php
class Student extends User {
public function setName($name) {
if (strlen($name) > 0) {
$this->name = $name;
} else {
echo 'student name error';
}
}
}
?>
Pārliecināsimies, ka tiek izsaukta tieši pārrakstītā metode. Vispirms izveidosim objektu bērnu klases:
<?php
$student = new Student;
?>
Tagad izsauksim mūsu metodi, padodot tai korektu vērtību:
<?php
$student->setName('john');
?>
Tagad izsauksim metodi, padodot tai nekorektu vērtību. Rezultātā redzēsim izmesto izņēmumu:
<?php
$student->setName(''); // kļūda
?>
Klasē User izveidojiet
vecuma getter un setter.
Klasē Employee pārrakstiet
vecuma setter un izveidojiet tajā
pārbaudi, ka vecums ir no
18 līdz 65 gadiem.