Java. Урок 29. Интерфейсы 1.3

Интерфейс представляет из себя класс, в котором все поля static и final, а все методы абстрактные.
Для того чтобы описать интерфейс, используется ключевое слово interface вместо class:

1
2
3
4
5
6
public interface MyArray {
    int Get(int i);
    int Set(int i);
    int Size();
    final int size = 0;
}

Все члены интерфейса по умолчанию являются public static, поэтому явно указывать это не обязательно. Константы интерфейса должны быть обязательно инициализированы, иначе вы не сможете создать его.
Для чего, собственно говоря, нужен интерфейс? Interface используют тогда, когда у нас есть несколько реализаций. То есть, допустим, у нас есть интерфейс MyArray, который содержит три метода. И есть два класса Array и LinkedList. Оба этих класса имеют такой же набор методов, что и интерфейс, но внутри они различаются, например Array умеет быстро отдавать элемент, но иногда медленно добавлять, а LinkedList умеет быстро отдавать, но медленно возвращает элемент по индексу. Тогда в программе вы можете использовать интерфейс и при необходимости сменить плохую реализацию на более подходящую для данного случая, сменив лишь одну строчку, а не заменяя тип данных во всем коде. Итак, перейдем к практическому примеру:
Изменим чуть — чуть наш интерфейс, для удобства реализации:

1
2
3
4
5
public interface MyArray {
    int Get(int i);//возвращает элемент по индексу
    int Add(int value);//кладет элемент в конец массива возвращает его индекс
    int Size();//возвращает размер массива
}

Для того, чтобы реализовать интерфейс используется ключевое слово implements:

1
2
public class Array implements MyArray {
}

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

Читать дальше
Категория: Java | Добавил: ghost_mod (29.09.2016)
Просмотров: 335 | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email:
Подписка:1
Код *: