Privatne metode pri nasleđivanju u OOP u PHP
Privatne metode se ne nasleđuju. Ovo je urađeno namerno, da se ne naruši enkapsulacija. Hajde da pogledamo na primeru. Neka imamo sledeći roditeljski klas sa privatnom metodom:
<?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);
}
}
?>
Neka od roditeljskog klasa nasleđuje sledeći klas:
<?php
class Student extends User {
private $surn;
public function setSurn($surn) {
$this->surn = $surn;
}
public function getSurn() {
return $this->surn;
}
}
?>
Neka potomak želi da iskoristi privatnu metodu roditelja. PHP to neće dozvoliti i ispisaće grešku:
<?php
class Student extends User {
private $surn;
public function setSurn($surn) {
$this->surn = $surn;
}
public function getSurn() {
return $this->capeFirst($this->surn); // biće greška
}
}
?>
Probajte u klasi Employee
da iskoristite privatnu metodu
roditelja.