Определяют абстракцию, которую реализует имплементирующая интерфейс сторона.
Объявление интерфейса:
Используется для описания поведения:
Может быть реализован одним и более классами. При этом должны быть реализованы все методы интерфейса, если они есть.
Использование интерфейсов:
Класс может реализовывать интерфейс.
Можно объявить интерфейсную переменную.
Интерфейс может наследовать несколько других интерфейсов.
Интерфейс может иметь элементы:
проинициализированные поля (public static final);
методы (public abstract);
интерфейсы (public static);
классы (public static).
yказанные модификаторы и спецификаторы можно не ставить.
Наследование интерфейса
Один интерфейс может имплементировать один и более интерфейсов.
Один abstract-класс может имплементировать только один интерфейс.
Оператор instanceof для этих классов и интерфейсов будет возвращать true: