Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗jvOpIfDM 68 of 147 menu
◀ ▶

Методы с телом в интерфейсе Java

Метод интерфейса может иметь тело, если перед сигнатурой стоит ключевое слово default. Такая реализация доступна во всех классах, которые подключают интерфейс, пока они сами не переопределят метод. Пример интерфейса:

interface Clickable { void click(); default void showHint() { System.out.println("clickable"); } } class Button implements Clickable { @Override public void click() { System.out.println("clicked"); } }

Класс обязан реализовать только абстрактные методы. Метод showHint можно вызывать сразу у объекта Button, не дублируя код:

Button button = new Button(); button.click(); button.showHint();

При необходимости поведение по умолчанию заменяют своим @Override. Это удобно, когда у большинства реализаций один и тот же код, а у отдельных типов - особый:

class SilentButton implements Clickable { @Override public void click() { System.out.println("silent click"); } @Override public void showHint() { System.out.println("no hint"); } }

Сделайте интерфейс Resettable с абстрактным методом reset и default-методом describeReset, который выводит строку "reset available".

Сделайте класс Timer, реализующий Resettable. Не переопределяйте describeReset.

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить