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