Встречается на собеседованиях • сегодня

Как компилятор определяет функциональный интерфейс

Функциональный интерфейс в Java — это интерфейс с ровно одним абстрактным методом (SAM — Single Abstract Method). Компилятор проверяет это условие, включая методы, унаследованные от Object (например, toString()), которые не считаются абстрактными.

Пример:

java
@FunctionalInterface
interface Calculator {
    int calculate(int a, int b); // единственный абстрактный метод
}

Нюансы:

  1. @FunctionalInterface — аннотация для явного обозначения (не обязательна, но помогает избежать ошибок)
  2. Дефолтные и статические методы не нарушают условие SAM
  3. Если интерфейс наследует другой функциональный интерфейс и не добавляет новых абстрактных методов, он остается функциональным
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы