OOP-də PHP-də irsidə private metodlar
Private metodlar irs olunmur. Bu, inkapsulyasiyanı pozmamaq üçün xüsusi olaraq edilib. Nümunəyə baxaq. Tutaq ki, aşağıdakı valideyn klasımız var private metodla:
<?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);
}
}
?>
Tutaq ki, valideyn klasından aşağıdakı klas irs alır:
<?php
class Student extends User {
private $surn;
public function setSurn($surn) {
$this->surn = $surn;
}
public function getSurn() {
return $this->surn;
}
}
?>
Tutaq ki, nəsil valideynin private metodundan istifadə etmək istəyir. PHP buna icazə verməyəcək və səhv verəcək:
<?php
class Student extends User {
private $surn;
public function setSurn($surn) {
$this->surn = $surn;
}
public function getSurn() {
return $this->capeFirst($this->surn); // səhv olacaq
}
}
?>
Employee klasında valideynin private metodundan
istifadə etməyə çalışın.