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