Oorvering van ouer-metodes in OOP in PHP
'n Subklas kan 'n metode van sy ouer oorheers deur 'n metode met dieselfde naam te skep. Kom ons kyk na 'n voorbeeld. Gestel ons het die volgende ouerklas:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Kom ons skep 'n metode met dieselfde naam in die subklas:
<?php
class Student extends User {
public function setName($name) {
}
}
?>
Oor die algemeen word ouer-metodes oorheers om die gedrag van daardie metode te verander of aan te vul. Kom ons voeg in ons geval 'n lengtetoe vir die naam by:
<?php
class Student extends User {
public function setName($name) {
if (strlen($name) > 0) {
$this->name = $name;
} else {
echo 'student name error';
}
}
}
?>
Kom ons maak seker dat die oorheerde metode presies die een is wat uitgevoer word. Laat ons eers 'n objek van die subklas skep:
<?php
$student = new Student;
?>
Laat ons nou ons metode roep en 'n korrekte waarde daaraan gee:
<?php
$student->setName('john');
?>
Laat ons nou die metode roep deur 'n onkorrekte waarde daaraan te gee. As gevolg sal ons die uitgeslote uitsondering sien:
<?php
$student->setName(''); // fout
?>
Maak in die klas User 'n
terugkryer en plaasvinder vir ouderdom.
Oorheers in die klas Employee
die plaasvinder vir ouderdom en doen
daarin 'n toets dat die ouderdom tussen
18 en 65 jaar is.