Можно ли опустить модификатор public и ключевое слово abstract в объявлении метода интерфейса?

То есть, эти два варианта эквивалентны:

Короткий ответ

Что ответить на собеседовании

В Java начиная с версии 8, в объявлении метода интерфейса можно опускать модификатор public и ключевое слово abstract, так как все методы в интерфейсе по умолчанию являются public abstract (за исключением методов с реализацией — default и static).

Подробный разбор

Ответ с пояснениями

В Java начиная с версии 8, в объявлении метода интерфейса можно опускать модификатор public и ключевое слово abstract, так как все методы в интерфейсе по умолчанию являются public abstract (за исключением методов с реализацией — default и static).

То есть, эти два варианта эквивалентны:

interface MyInterface {
    void doSomething(); // по умолчанию public abstract
}

interface MyInterface {
    public abstract void doSomething();
}

Оба объявления означают, что метод должен быть реализован в классе, который реализует интерфейс.

Однако для читаемости кода часто явно указывают public (но abstract обычно опускают).

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее