Главная » Java » Вложенность в интерфейсах

0

 

Объявление вложенных классов и интерфейсов внутри интерфейса обусловлено теми же причинами, что и вкладывание классов и интерфейсов в классы: модель вложенных классов и интерфейсов позволяет ассоциировать внутренний и внешний типы, которые тесно связаны между собой. Рассмотрим пример Простого класса, предусматривающего хранение нескольких значений; эти значения должны возвращаться методом, принадлежащим интерфейсу. В этом случае класс разумно представить в виде вложенного типа:

interface Changeable { class Record {

public Object changer;

public string changeDesc;

}

Record getLastChange();

 / / …

}

Метод getLastChange возвращает объект класса Changeablе. Record. Этот класс имеет значение только в пределах внешнего интерфейса changeab1е, и поэтому "вынесение" его вовне не только не целесообразно, но и явно не желательно, поскольку разделит столь необходимый классу и интерфейсу общий контекст.

Другое применение классов, вложенных в интерфейсы, связано с определением (частичным или полным) реализации интерфейса по умолчанию. Далее при реализации интерфейса производный тип вправе при необходимости расширить вложенный класс.

Вложенные класс или интерфейс, как и другие члены интерфейса, всегда по умолчанию снабжаются признаками public и statiс.

 

Источник: Арнолд, Кен, Гослинг, Джеймс, Холмс, Дэвид. Язык программирования Java. 3-е изд .. : Пер. с англ. – М. : Издательский дом «Вильяме», 2001. – 624 с. : ил. – Парал. тит. англ.

По теме:

  • Комментарии