Интерфейс в Java с примером

Что такое интерфейс Java?

An Интерфейс в Java язык программирования определяется как абстрактный тип, используемый для определения поведения класса. А Java интерфейс содержит статические константы и абстрактные методы. Класс может реализовывать несколько интерфейсов. В Java, интерфейсы объявляются с использованием ключевого слова интерфейса. Все методы в интерфейсе неявно общедоступны и абстрактны.

Синтаксис объявления интерфейса

Чтобы использовать интерфейс в своем классе, добавьте ключевое слово «implements» после имени вашего класса, а затем имя интерфейса.

interface {
//methods
}

Пример реализации интерфейса

Теперь давайте разберемся с интерфейсом в Java с примером:

class Dog implements Pet
interface RidableAnimal extends Animal, Vehicle

Нажмите здесь если видео недоступно

Зачем нужен интерфейс?

Чтобы понять использование интерфейса в Java лучше, дай посмотреть Java пример интерфейса. Класс «Медиаплеер» имеет два подкласса: проигрыватель компакт-дисков и проигрыватель DVD. Каждый из них имеет свою уникальную реализацию интерфейса в Java метод воспроизведения музыки.

Зачем нужен интерфейс

Другой класс «Комбо-привод» наследует как CD, так и DVD (см. изображение ниже). Какой игровой метод он должен наследовать? Это может вызвать серьезные проблемы с дизайном. И следовательно, Java не допускает многократного наследование.

Зачем нужен интерфейс

Теперь давайте возьмем другой пример Dog.

Предположим, у вас есть требование, в котором класс «собака» наследует классы «животное» и «Домашнее животное» (см. изображение ниже). Но вы не можете расширить два класса в Java. Так что бы ты сделал? Решение — интерфейс.

Зачем нужен интерфейс

В книге правил интерфейса говорится:

  • A Java интерфейс реализации является 100% абстрактным классом и имеет только абстрактные методы.
  • Класс может реализовывать любое количество интерфейсов.

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

Зачем нужен интерфейс

Java Пример интерфейса:

Давайте разберемся с приведенной ниже интерфейсной программой в Java:

Шаг 1) Скопируйте следующий код в редактор.

interface Pet{
  public void test();
}
class Dog implements Pet{
   public void test(){
     System.out.println("Interface Method Implemented");
  }
   public static void main(String args[]){
     Pet p = new Dog();
     p.test();
  }
}

Шаг 2) Сохраните, скомпилируйте и запустите код. Наблюдайте за выводом интерфейса в Java программа.

Разница между классом и интерфейсом

Класс
Интерфейс
В классе вы можете создать экземпляр переменной и создать объект. В интерфейсе вы не можете создать экземпляр переменной и создать объект.
Класс может содержать конкретные (с реализацией) методы. Интерфейс не может содержать конкретные (с реализацией) методы
Спецификаторы доступа, используемые с классами, являются частными, защищенными и общедоступными. В интерфейсе используется только один спецификатор — Public.

Когда использовать интерфейс и абстрактный класс?

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

Необходимо знать факты об интерфейсе

  • A Java класс может реализовать несколько Java Интерфейсы. Необходимо, чтобы класс реализовал все методы, объявленные в интерфейсах.
  • Класс должен переопределять все абстрактные методы, объявленные в интерфейсе.
  • Интерфейс позволяет отправлять сообщение объекту независимо от того, к какому классу он принадлежит.
  • Класс должен обеспечивать функциональность методов, объявленных в интерфейсе.
  • Все методы в интерфейсе неявно общедоступны и абстрактны.
  • Интерфейс не может быть создан
  • Ссылка на интерфейс может указывать на объекты реализующих его классов.
  • Интерфейс может расширяться из одного или нескольких интерфейсов. Класс может расширять только один класс, но реализовывать любое количество интерфейсов.
  • Интерфейс не может реализовывать другой интерфейс. При необходимости он должен расширить другой интерфейс.
  • Интерфейс, объявленный внутри другого интерфейса, называется вложенным интерфейсом.
  • Во время объявления переменная интерфейса должна быть инициализирована. В противном случае компилятор выдаст ошибку.
  • Класс не может реализовать два интерфейса в Java, которые имеют методы с одинаковым именем, но разными типами возвращаемого значения.

Резюме:

  • Класс, реализующий интерфейс, должен обеспечивать функциональность методов, объявленных в интерфейсе.
  • Все методы в интерфейсе неявно общедоступны и абстрактны.
  • Интерфейс не может быть создан
  • Ссылка на интерфейс может указывать на объекты реализующих его классов.
  • Интерфейс может расширяться из одного или нескольких интерфейсов. Класс может расширять только один класс, но реализовывать любое количество интерфейсов.