PHP-де ООП-да қайта анықталған әдісті шақыру
Қайта анықтау кезінде мұрагер
ата-ананың қайта анықталған әдісіне
қол жеткізе алмайды. Дегенмен, оған
қол жеткізу әлі де мүмкін. Бұл
parent кілт сөзінің көмегімен
жасалады, ол ата-ана сыныбын көрсетеді.
Бізге ата-ана әдісіне қол жеткізу қажет болатын мысалды қарастырайық. Бізде келесі ата-ана сыныбы бар делік:
<?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) {
if (strlen($name) > 0) {
$this->name = $name;
} else {
echo 'student name error';
}
}
}
?>
Қайта анықталған әдісте шарт орындалған кезде іс жүзінде ата-ана әдісінің коды орындалатынын байқауға болады. Бұл кодтың қажетсіз көшірмесіне әкеп соғады.
Ата-ана әдісін шақыру арқылы бұдан құтылуға болады. Мұны істейік:
<?php
class Student extends User {
public function setName($name) {
if (strlen($name) > 0) {
parent::setName($name); // ата-ана әдісі
} else {
echo 'student name error';
}
}
}
?>
Берілген код:
<?php
class User {
private $age;
public function setAge($age) {
if ($age >= 0) {
$this->age = $age;
} else {
echo 'need age more 0';
}
}
}
class Employee extends User {
public function setAge($age) {
if ($age <= 120) {
if ($age >= 0) {
$this->age = $age;
} else {
echo 'need age more 0';
}
} else {
echo 'need age less 120';
}
}
}
?>
Employee сыныбында
жас сеттерін қарапайымдаңыз, ата-ананың
түпнұсқа әдісін пайдаланып.