Вложенные интерфейсы в языке Java

Вложенные интерфейсы в языке Java

Интерфейс может бьrгь объявлен членом класса или другого интерфейса. Такой интерфейс называется иитерфейсом-членом или вложенным иитерфейсом.

Вложенный интерфейс может быть объявлен как public, private или protected. Этим он от­личается от интерфейса верхнего уровня, который должен бьrгь объявлен как pub­lic или использовать уровень доступа по умолчанию.

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

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

В следующем примере демонстрируется применение вложенного интерфейса:

После запуска программы получаем:

Обратите внимание на то, что в классе FirstClass определяется вложенный интерфейс NiceNested объявленный как public. Затем вложенный интерфейс реализуется в классе SecondClass следующим образом:

Обратите также внимание на то, что имя интерфейса полностью уточнено и содержит имя класса. В теле метода main() создается переменная iface ссылки на интерфейс FirstClass.NiceNested, которой присваивается ссылка на объект класса SecondClass.

И это вполне допустимо, поскольку класс SecondClass реализует интерфейс FirstClass.NiceNested.

Интересное видео по теме вложенных интерфейсов: