Tėvų metodų perrašymas OOP PHP
Paveldėjusi klasė gali perrašyti tėvo metodą, sukurdama metodą su tokiu pačiu pavadinimu. Pažiūrėkime pavyzdžiu. Tarkime, kad turime šią tėvinę klasę:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Paveldimoje klasėje sukurkime to paties pavadinimo metodą:
<?php
class Student extends User {
public function setName($name) {
}
}
?>
Paprastai, tėvų metodų perrašymas reikalingas tam, kad pakeistumėte arba papildytumėte šio metodo elgesį. Mūsų atveju pridėkime vardo ilgio patikrinimą:
<?php
class Student extends User {
public function setName($name) {
if (strlen($name) > 0) {
$this->name = $name;
} else {
echo 'studento vardo klaida';
}
}
}
?>
Įsitikinkime, kad iškviečiamas būtent perrašytas metodas. Pirmiausia sukurkime paveldimos klasės objektą:
<?php
$student = new Student;
?>
Dabar iškviestinėkime mūsų metodą, perduodami jam teisingą reikšmę:
<?php
$student->setName('john');
?>
O dabar iškviestinėkime metodą, perduodami jam neteisingą reikšmę. Rezultate pamatysime išmestą išimtį:
<?php
$student->setName(''); // klaida
?>
Klasėje User padarykite
amžiaus getterį ir setterį.
Klasėje Employee perrašykite
amžiaus setterį ir padarykite jame
patikrinimą, kad amžius būtų nuo
18 iki 65 metų.