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

В чем разница между интерфейсом и функциональным интерфейсом

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

Функциональные интерфейсы используются для лямбда-выражений и ссылок на методы. В Java они помечаются аннотацией @FunctionalInterface (хотя это не обязательно, но рекомендуется для ясности).

Пример:

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

public class Main {
    public static void main(String[] args) {
        Calculator add = (a, b) -> a + b; // лямбда-выражение
        System.out.println(add.calculate(5, 3)); // 8
    }
}

Обычный интерфейс может содержать несколько методов, default-методы и static-методы, но не может быть использован как функциональный, если у него больше одного абстрактного метода.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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