В классических интерфейсах, например в Java до версии 8, методы не могут иметь реализацию — они только объявляются, а реализация предоставляется в классах, которые этот интерфейс реализуют.
В интерфейсах могут быть методы с реализацией или нет?
В классических интерфейсах, например в Java до версии 8, методы не могут иметь реализацию — они только объявляются, а реализация предоставляется в классах, которые этот интерфейс реализуют.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В классических интерфейсах, например в Java до версии 8, методы не могут иметь реализацию — они только объявляются, а реализация предоставляется в классах, которые этот интерфейс реализуют.
Начиная с Java 8, в интерфейсах появились методы с реализацией — default методы. Они позволяют задать стандартную реализацию, которую можно переопределить в классах.
Пример:
public interface MyInterface {
void abstractMethod(); // без реализации
default void defaultMethod() {
System.out.println("Default implementation");
}
}
Таким образом, интерфейсы могут содержать как абстрактные методы без реализации, так и методы с реализацией (default, static). Это расширяет возможности интерфейсов и упрощает эволюцию API.