Главная страница >> Учебные пособия >> Введение в JDK/Java >> Множественное наследование в Java. >> Интерфейсы.

Глава 5. Множественное наследование в Java.

     Простое наследование классов мы рассмотрели в главе 3.5 Однако в Java запрещено непосредственное множественное наследование между классами, то есть у одного подкласса может быть только один суперкласс (в объявлении extends может быть указано имя одного класса). Это ограничение, впрочем, снимается с помощью некоторых приемов, которые мы рассмотрим в этой главе.

Глава 5.1 Интерфейсы.

С помощью интерфейсов можно частично решить проблему множественного наследования объектов. Интерфейсы - это своего рода неполные классы: у них отсутствуют переменные представителей, а методы интерфейсов не могут содержать тела. Объявление интерфейса совершается с помощью слова interface:

interface имя_интерфейса {
тип имя_метода1 (тип формальная_переменная1, тип формальная_переменная2...)
...
тип имя_метода2 (тип формальная_переменная1, тип формальная_переменная2...)
тип имя_переменной_типа_final1 = значение;
...
тип имя_переменной_типа_final2 = значение;
}

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

interface myfirstinterface {
final int x = 4;
boolean method1 (int k);
}

Теперь, чтобы использовать интерфейс в нашем классе нужно воспользоваться оператором implements:

class MyFirstApplet extends java.applet.Applet implements myfirstinterface {

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

Аналогично классам и методам существуют встроенные Java-интерфейсы. Характерный пример использования встроенных интерфейсов - обработка событий: нажатие клавиши, кнопки мыши или движение мыши. Обработку событий производят слушатели событий. Для их вызова будем использовать интерфейсы:

class GraphicConvey extends java.applet.Applet implements MouseListener, MouseMotionListener {



<Предыдущий> <Следующий> <Содержание> <На главную>
©  Alex Vanin         year 2002
     bookmans@mail.ru
Hosted by uCoz