Что такое функциональный интерфейс?

Функциональный интерфейс в Java задаёт один абстрактный метод-контракт и может быть реализован лямбдой или ссылкой на метод. Методы default и static не нарушают это условие.

Короткий ответ

Что ответить на собеседовании

Функциональный интерфейс в Java задаёт один абстрактный метод-контракт и может быть реализован лямбдой или ссылкой на метод. Методы default и static не нарушают это условие.

Подробный разбор

Ответ с пояснениями

Функциональный интерфейс в Java задаёт один абстрактный метод-контракт и может быть реализован лямбдой или ссылкой на метод. Методы default и static не нарушают это условие.

Аннотация @FunctionalInterface необязательна, но позволяет компилятору проверить намерение. Примеры — Predicate<T>, Function<T, R> и Runnable. Публичные методы, совпадающие с методами Object, не считаются отдельным функциональным контрактом. Наследование тоже учитывается: важен итоговый набор абстрактных обязательств, а не просто количество строк с методами в объявлении интерфейса.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее