Частни свойства при наследяване в ООП в 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;
}
?>
Уверете се, че кодът на метода ще доведе до грешка.