Back to questions
Junior — Middle
62
Допустимо ли наличие двух методов в функциональном интерфейсе?
Answer from AI
sobes.tech AI
Функциональный интерфейс в Java — это интерфейс с ровно одним абстрактным методом. Наличие двух и более абстрактных методов делает интерфейс не функциональным.
Однако интерфейс может содержать несколько методов по следующим причинам:
- Методы по умолчанию (default methods) — имеют реализацию и не считаются абстрактными.
- Статические методы — тоже не абстрактные.
Таким образом, допустимо иметь несколько методов в интерфейсе, но только один из них должен быть абстрактным, чтобы интерфейс считался функциональным и мог использоваться, например, с лямбда-выражениями.
Пример функционального интерфейса:
@FunctionalInterface
public interface MyFunction {
void apply(); // единственный абстрактный метод
default void log() {
System.out.println("Logging");
}
}
Если добавить второй абстрактный метод, компилятор выдаст ошибку.