Sobes.tech
Назад к вопросам
Junior — Middle
74

К каким отличиям можно прийти при сравнении обычного интерфейса и функционального интерфейса в программировании?

Компании, где спрашивали
Передовые Платежные Решения

Ответ от нейросети

sobes.tech AI

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

Основные отличия:

  • Количество абстрактных методов: функциональный интерфейс содержит ровно один абстрактный метод, обычный — может несколько.
  • Использование: функциональные интерфейсы предназначены для функционального программирования, позволяют писать компактный код с лямбдами.
  • Аннотация @FunctionalInterface: используется для явного указания, что интерфейс функциональный (необязательно, но рекомендуется).

Пример функционального интерфейса:

@FunctionalInterface
public interface Calculator {
    int calculate(int a, int b);
}

// Использование с лямбда-выражением
Calculator sum = (a, b) -> a + b;
System.out.println(sum.calculate(5, 3)); // 8

Обычный интерфейс может содержать несколько методов и не подходит для лямбд напрямую.