Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Industrial programming >> java

Java — Интерфейсы

Интерфейс — это ссылочный тип в Java. Это похоже на класс. Это набор абстрактных методов. Класс реализует интерфейс, тем самым наследуя абстрактные методы интерфейса.

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

Написание интерфейса похоже на написание класса. Но класс описывает атрибуты и поведение объекта. А интерфейс содержит поведение, которое реализует класс.

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

Интерфейс похож на класс в следующих отношениях —

Однако интерфейс отличается от класса несколькими способами, в том числе -

Объявление интерфейсов

Интерфейс ключевое слово используется для объявления интерфейса. Вот простой пример объявления интерфейса —

Пример

Ниже приведен пример интерфейса —

05

Интерфейсы имеют следующие свойства —

Пример

15 

Реализация интерфейсов

Когда класс реализует интерфейс, вы можете думать о классе как о подписании контракта, соглашаясь выполнять определенные действия интерфейса. Если класс не выполняет все функции интерфейса, он должен объявить себя абстрактным.

Класс использует приспособления ключевое слово для реализации интерфейса. Ключевое слово "реализует" появляется в объявлении класса после части объявления "extensions".

Пример

22

Это даст следующий результат —

Вывод

36

При переопределении методов, определенных в интерфейсах, необходимо соблюдать несколько правил —

  • Проверяемые исключения не должны объявляться в методах реализации, отличных от тех, которые объявлены интерфейсным методом, или подклассов тех, которые объявлены интерфейсным методом.

  • Сигнатура метода интерфейса и тот же возвращаемый тип или подтип должны сохраняться при переопределении методов.

  • Сам класс реализации может быть абстрактным, и если это так, методы интерфейса не нужно реализовывать.

При реализации интерфейсов существует несколько правил —

  • Класс может одновременно реализовывать более одного интерфейса.

  • Класс может расширять только один класс, но реализовывать множество интерфейсов.

  • Интерфейс может расширять другой интерфейс подобно тому, как класс может расширять другой класс.

Расширение интерфейсов

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

Следующий спортивный интерфейс расширен интерфейсами хоккея и футбола.

Пример

44

Интерфейс Hockey имеет четыре метода, но два он унаследовал от Sports; таким образом, класс, реализующий Hockey, должен реализовать все шесть методов. Точно так же класс, реализующий Football, должен определить три метода из Football и два метода из Sports.

Расширение нескольких интерфейсов

Класс Java может расширять только один родительский класс. Множественное наследование не допускается. Однако интерфейсы не являются классами, и интерфейс может расширять несколько родительских интерфейсов.

Ключевое слово extends используется один раз, а родительские интерфейсы объявляются в списке, разделенном запятыми.

Например, если бы интерфейс Hockey расширял возможности как Sports, так и Event, он был бы объявлен как −

Пример

53

Тегирование интерфейсов

Чаще всего расширяющие интерфейсы используются, когда родительский интерфейс не содержит никаких методов. Например, интерфейс MouseListener в пакете java.awt.event расширил java.util.EventListener, который определяется как -

Пример

65

Интерфейс без методов называется тегированием. интерфейс. Есть две основные цели дизайна тегов интерфейсов —

Создает общий родитель − Как и в случае с интерфейсом EventListener, который расширен десятками других интерфейсов в API Java, вы можете использовать интерфейс тегов для создания общего родителя среди группы интерфейсов. Например, когда интерфейс расширяет EventListener, JVM знает, что этот конкретный интерфейс будет использоваться в сценарии делегирования событий.

Добавляет тип данных в класс − Именно из этой ситуации произошел термин «тегирование». Классу, реализующему интерфейс тегов, не нужно определять какие-либо методы (поскольку у интерфейса их нет), но класс становится интерфейсным типом благодаря полиморфизму.


java

  1. Окончательное ключевое слово Java
  2. Оператор экземпляра Java
  3. Java-интерфейс
  4. Вложенный статический класс Java
  5. Анонимный класс Java
  6. Одноэлементный класс Java
  7. Java-отражение
  8. Класс Java ObjectOutputStream
  9. Дженерики Java
  10. Класс файла Java