Можно ли объявить интерфейс с уровнем доступа, отличным от публичного?

В Java интерфейсы по умолчанию имеют уровень доступа public или пакетный (default), если явно не указан модификатор.

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

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

В Java интерфейсы по умолчанию имеют уровень доступа public или пакетный (default), если явно не указан модификатор.

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

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

В Java интерфейсы по умолчанию имеют уровень доступа public или пакетный (default), если явно не указан модификатор.

  • Если интерфейс объявлен вне класса (на уровне пакета), то он может быть либо public, либо иметь пакетный доступ (без модификатора). Другие уровни доступа, такие как private или protected, недопустимы для top-level интерфейсов.
  • Внутри класса (вложенный интерфейс) можно объявить интерфейс с любым уровнем доступа, включая private и protected.

Пример:

// Пакетный доступ
interface MyInterface {}

// Публичный интерфейс
public interface MyPublicInterface {}

class Outer {
    private interface InnerInterface {}
}

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

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

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

Подробнее