Задать вопрос
@Pro_Code

Часть кода из паттерна — компоновщик. Имеем — абстрактный класс, и класс — наследник. Собственно, как такое происходит?

Абстрактный класс:
abstract class SomeAbstract
{
     protected $var = 'variable data';
}


Наследник:
class InheritedСlass extends SomeAbstract
{
     public function someAction(SomeAbstract $someAbstract)
     {
          dump($someAbstract->var); // вот здесь не понятно, как protected var превратилась в public
     }
}
  • Вопрос задан
  • 427 просмотров
Подписаться 1 Простой 18 комментариев
Решения вопроса 1
https://www.php.net/manual/ru/language.oop5.visibi...

Видимость из других объектов:
Объектам одного и того же типа доступны защищённые и закрытые члены класса друг друга, даже если это разные экземпляры. Это связано с тем, что внутри таких объектов уже известны конкретные детали реализации.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы