Можно ли объявить в абстрактном классе абстрактное свойство (в PHP)? Доброго времени суток. Недавно на собеседовании столкнулся с вопросом, который мне до сих пор не даёт покоя. Вопрос звучал так: "Можно ли в абстрактном классе объявить абстрактное свойство и если нет, то почему?". Подсознательно понимаю, что нельзя, т.к. это не правильно (наверное). Но не уверен в этом и не могу сформулировать, почему нельзя. Есть у кого какие мысли по этому поводу? Можно ли, и если нельзя, то почему? =)

21 Авг 2019 в 07:07
167 +1
0
Ответы
1

В PHP нельзя объявить абстрактное свойство в абстрактном классе. При объявлении абстрактного свойства в абстрактном классе возникает ошибка, так как абстрактные свойства не поддерживаются в PHP.

Абстрактный класс может содержать только абстрактные методы, которые должны быть реализованы в дочерних классах. Свойства должны быть объявлены в классе напрямую или через методы (геттеры и сеттеры).

Поэтому, если вам необходимо определить обязательное свойство в дочернем классе, можно объявить абстрактный метод для доступа к этому свойству, но не само свойство.

20 Апр 2024 в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир