Иллюстрированный самоучитель по Java



              

Интерфейсы - часть 2


Pickup

. Этот класс должен наследовать свойства и грузовых, и легковых автомобилей.

В таких случаях используется еще одна конструкция языка Java— интерфейс. Внимательно проанализировав ромбовидное наследование, теоретики ООП выяснили, что проблему создает только реализация методов, а не их описание.

Интерфейс

(interface), в отличие от класса, содержит только константы  и заголовки методов, без их реализации.

Интерфейсы размещаются в тех же пакетах и подпакетах, что и классы, и компилируются тоже в class-файлы.

Описание интерфейса начинается со слова

interface

, перед которым может стоять модификатор

public

, означающий, как и для класса, что интерфейс доступен всюду. Если же модификатора

public

нет, интерфейс будет виден только в своем пакете.

После слова

interface

записывается имя интерфейса, .потом может ;стоять слово

extends

и список интерфейсов-предков через запятую. Таким образом, интерфейсы могут порождаться от интерфейсов, образуя свою, независимую от классов, иерархию, причем в ней допускается множественное наследование интерфейсов. В этой иерархии нет корня, общего предка.

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

abstract

писать не надо. Константы всегда статические, но слова

static

и

final

указывать не нужно.

Все константы и методы в интерфейсах всегда открыты, не надо даже .указывать модификатор

public

.

Вот какую схему можно предложить для иерархии автомобилей:

interface Automobile{ . . . }

interface Car extends Automobile{ . . . }

interface Truck extends Automobile{ . . . } 

interface Pickup extends Car, Truck{ . . . }

Таким образом, интерфейс — это только набросок, эскиз. В нем указано, что делать, но не указано, как это делать.

Как же использовать интерфейс, если он полностью абстрактен, в нем нет ни одного полного метода?

Использовать нужно не интерфейс, а его

реализацию




Содержание  Назад  Вперед