Прыватныя метады пры наследаванні ў ААП у 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
скарыстацца прыватным метадам
бацькі.