Приватни методи при наследование во ООП во 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
да го искористите приватниот метод
на родителот.