Интерфейс - это ссылочный тип, который используется для обеспечения выполнения контракта с классом. Контракт относится к обязательству реализовать методы, определяемые интерфейсом.
Интерфейсы обеспечивают абстракцию между методами, которые они определяют, и тем, как пользователь реализует их в классе. Практический пример использования этого - API (интерфейсы прикладного программирования).
API-интерфейсы позволяют вашей программе взаимодействовать с другими программами, не зная, как они реализованы. Это важно как по причинам собственности (для компании, владеющей правами), так и для облегчения разработки с вашей стороны.
Давайте посмотрим, как использовать интерфейсы Java.
Определение интерфейсов
Чтобы объявить интерфейс, поместите ключевое слово интерфейс перед именем интерфейса.
interface Car {
// объявления констант, если есть
int tyres = 4;
// сигнатуры методов
int lights (внутренняя яркость);
int turn (int tyres, String direction) {
// какой-то код
}
}
В заголовке интерфейса вы также можете указать уровень его видимости перед ключевым словом интерфейс.
Значения в интерфейсе постоянны. Эти значения по умолчанию общедоступный, статический а также окончательный. Следовательно, нет необходимости использовать эти ключевые слова при объявлении значений в теле интерфейса.
Связанный: Как управлять областью переменной в Java
Тело интерфейса также может иметь по умолчанию, абстрактный, статический методы. Эти методы по умолчанию общественный, поэтому нет необходимости указывать эти модификаторы доступа при их объявлении.
Абстрактные методы объявляются без фигурных скобок в теле метода. См. Строку 7 в приведенном выше коде. Статические методы объявляются путем добавления к имени метода ключевого слова статический & методы по умолчанию объявляются с дефолт модификатор.
Сейчас самое время упомянуть, что вы должны использовать методы, объявленные в интерфейсе, в любых классах, которые его реализуют. В противном случае компилятор «принудительно применяет контракт», выдавая ошибку компиляции.
Это свойство интерфейсов может иметь некоторые недостатки. Рассмотрим случай, когда поставщик интерфейса прикладного программирования (API) решает добавить больше методов к своим интерфейсам, но несколько приложений основаны на старых интерфейсах. Разработчикам, использующим старые интерфейсы в своих программах, придется переписывать свой код, что непрактично.
Итак, вот где дефолт методы входят. Они позволяют поставщикам API добавлять дополнительные методы в свои интерфейсы, обеспечивая двоичную совместимость со старыми версиями интерфейсов.
по умолчанию int getDirection (Строковые координаты) {
// напишем код для реализации по умолчанию
}
Вышеупомянутый метод показывает, как вызывается метод по умолчанию получить направление объявляется. Обратите внимание, что вы должны включить реализацию метода по умолчанию при его написании.
Использование интерфейсов
Теперь, когда мы определили интерфейсы в Java, мы можем перейти к тому, как вы можете их реализовать. Вы узнаете об этом в разделе ниже.
Реализация интерфейсов
Для реализации интерфейса используйте ключевое слово орудия используя этот синтаксис:
класс A реализует интерфейс P {
}
Помните, что вы должны использовать все методы интерфейса в классе. Вы можете игнорировать это правило, только если один из методов определен как дефолт в интерфейсе.
Связанный: Введение в использование связанных списков в Java
Если вы хотите, чтобы ваш класс реализовал несколько интерфейсов, вы можете разделить их запятыми в объявлении заголовка.
Пример:
класс A реализует интерфейс P, Q, R {
}
Если класс, реализующий интерфейс, является подклассом, используйте синтаксис ниже:
класс A расширяет B реализует C, D {
}
Интерфейсы позволяют множественное наследование в Java. Обычно класс может расширять только один класс (одиночное наследование). Интерфейсы - это единственный способ, которым Java может выполнять множественное наследование.
Интерфейсы также могут расширять другие интерфейсы, так же как класс может расширять другой класс. Дочерний интерфейс наследует методы интерфейса, который он расширяет.
См. Пример ниже:
интерфейс A расширяет B {
}
Помимо использования методов по умолчанию для изменения интерфейса, не требуя от разработчиков изменения своих текущих программ, вы также можете расширить существующие интерфейсы.
Теперь у вас есть некоторые базовые знания об интерфейсах Java.
Интерфейсы в Java демонстрируют абстракцию, один из четырех столпов объектно-ориентированного программирования. Полиморфизм - один из этих четырех столпов. Это относится к способности метода принимать разные формы.
Вы можете реализовать полиморфизм в Java через перегрузку метода или переопределение метода. Следующим в вашем списке чтения Java должно быть то, как реализовать эти функции.
Сократите код, который вы пишете, с помощью перегрузки и переопределения методов.
Читать далее
- Программирование
- Джава
- Языки программирования
- Программирование
Джером - штатный писатель в MakeUseOf. Он освещает статьи по программированию и Linux. Он также криптоэнтузиаст и всегда следит за криптоиндустрией.
Подписывайтесь на нашу новостную рассылку
Подпишитесь на нашу рассылку, чтобы получать технические советы, обзоры, бесплатные электронные книги и эксклюзивные предложения!
Нажмите здесь, чтобы подписаться