В Java интерфейс может содержать default- и static-методы с телом, а начиная с Java 9 — private-методы для внутреннего переиспользования кода.
Какие есть возможности реализовать метод прямо в самом интерфейсе Java (не только объявить сигнатуру)?
В Java интерфейс может содержать default- и static-методы с телом, а начиная с Java 9 — private-методы для внутреннего переиспользования кода.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В Java интерфейс может содержать default- и static-методы с телом, а начиная с Java 9 — private-методы для внутреннего переиспользования кода.
Default-метод наследуется реализациями и может быть переопределён. Static-метод вызывают через имя интерфейса; он не становится обычным экземплярным методом класса. Private-методы доступны только внутри интерфейса и помогают избежать дублирования между методами с телом. Поля интерфейса остаются константами, а конструкторов и обычного состояния экземпляра у него нет. При конфликте default-методов нескольких интерфейсов реализующий класс должен разрешить неоднозначность.