В PHP интерфейсы предназначены для объявления публичных методов, которые должны реализовываться классами. Объявлять методы с модификатором приватности внутри интерфейса нельзя — все методы интерфейса по умолчанию публичные.
Является ли допустимым объявлять метод с модификатором приватности внутри интерфейса?
В PHP интерфейсы предназначены для объявления публичных методов, которые должны реализовываться классами.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В PHP интерфейсы предназначены для объявления публичных методов, которые должны реализовываться классами. Объявлять методы с модификатором приватности внутри интерфейса нельзя — все методы интерфейса по умолчанию публичные.
Если попытаться объявить приватный метод в интерфейсе, это вызовет ошибку.
Пример корректного интерфейса:
interface Logger {
public function log(string $message);
}
Если нужна приватная логика, её реализуют внутри класса, а интерфейс описывает только публичный контракт.