ВНИМАНИЕ: Запись на курсы по HTML, CSS, JavaScript, PHP, Python, React, Vue, Laravel и другим фреймворкам и CMS,
а также: помощь в поиске работы и заказов, стажировка на реальных проектах→
⊗ppOpIhPrP 32 of 107 menu
Хочешь читать code.mu на своем родном языке? Помоги с переводом! Переведем мы сами, тебе нужно указать на ошибки перевода:) Оставляй заявку ->

Приватные свойства при наследовании в ООП в 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; } ?>

Убедитесь, что код метода приведет к ошибке.

byenru