Ответ
Функциональный интерфейс в Java должен содержать ровно один абстрактный метод (SAM — Single Abstract Method). Однако, он может включать:
- Любое количество default методов.
- Любое количество static методов.
- Методы, унаследованные от
Object(например,toString(),equals()), они не считаются.
Пример:
@FunctionalInterface
interface Calculator {
int calculate(int a, int b); // единственный абстрактный метод
default void logResult(int result) {
System.out.println("Result: " + result);
}
static String getVersion() {
return "1.0";
}
}