Ответ
Default-метод (метод по умолчанию) — это метод в интерфейсе Java, имеющий собственную реализацию. Он был добавлен в Java 8 для решения проблемы обратной совместимости при расширении интерфейсов.
Основное назначение:
- Позволяет добавлять новую функциональность в существующие интерфейсы, не ломая код всех классов, которые их уже реализуют.
- Класс-реализатор может использовать реализацию по умолчанию, переопределить её или объявить метод как
abstract(если класс сам является абстрактным).
Пример:
interface Vehicle {
void start(); // Абстрактный метод
// Default-метод с реализацией
default void honk() {
System.out.println("Beep beep!");
}
}
class Car implements Vehicle {
@Override
public void start() {
System.out.println("Car started");
}
// Метод honk() не обязан быть переопределен
}
public class Main {
public static void main(String[] args) {
Car car = new Car();
car.start(); // Car started
car.honk(); // Beep beep! (вызывается default-реализация)
}
}
Ключевые особенности:
- Объявляется с ключевым словом
default. - Может вызывать другие методы того же интерфейса.
- Не может переопределять методы класса
Object(например,toString,equals). - Разрешает множественное наследование поведения (но не состояния), что было невозможно до Java 8.