Частни методи при наследяване в ООП в PHP
Частните методи не се наследяват. Това е направено специално, за да не се нарушава енкапсулацията. Нека да разгледаме пример. Да предположим, че имаме следния родителски клас с частен метод:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->capeFirst($this->name);
}
private function capeFirst($str) {
return ucfirst($str);
}
}
?>
Да предположим, че от родителския клас наследява следният клас:
<?php
class Student extends User {
private $surn;
public function setSurn($surn) {
$this->surn = $surn;
}
public function getSurn() {
return $this->surn;
}
}
?>
Да предположим, че наследникът иска да използва частния метод на родителя. PHP няма да разреши това и ще даде грешка:
<?php
class Student extends User {
private $surn;
public function setSurn($surn) {
$this->surn = $surn;
}
public function getSurn() {
return $this->capeFirst($this->surn); // ще даде грешка
}
}
?>
Опитайте се в класа Employee
да използвате частен метод
на родителя.