Прыватныя ўласцівасці пры наследаванні ў ААП у PHP
Прыватныя ўласцівасці не наследуются. Але нашчадак можа маніпуляваць імі праз публічныя метады бацькі. Давайце паглядзім на практыцы. Хай у нас ёсць наступны клас-бацька з прыватнай уласцівасцю і яго гетэрам і сетэрам:
<?php
class User {
private $name;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
}
?>
Хай ад бацькі наследуе наступны нашчадак:
<?php
class Student extends User {
}
?>
Стварым аб'ект нашчадка:
<?php
$student = new Student;
?>
Скарыстаемся метадам бацькі, каб запісаць яго прыватную ўласцівасць:
<?php
$student->setName('john');
?>
Скарыстаемся метадам бацькі, каб прачытаць яго прыватную ўласцівасць:
<?php
$name = $student->getName();
echo $name;
?>
Дадзены наступны клас-бацька:
<?php
class User {
private $name;
private $surn;
public function setName($name) {
$this->name = $name;
}
public function getName() {
return $this->name;
}
public function setSurn($surn) {
$this->surn = $surn;
}
public function getSurn() {
return $this->surn;
}
}
?>
Зрабіце клас Employee
,
які будзе наследаваць
ад гэтага бацькі.
Стварыце аб'ект класа Employee
і выклічце ўспадкаваныя
сетэры і гетэры.
У класе Employee
зрабіце
наступны метад:
<?php
public function getFull() {
return $this->name . ' ' . $this->surn;
}
?>
Пераканайцеся, што код метаду прыведзе да памылкі.