Что такое интерфейс в Java с примером

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

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

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

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

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

 

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

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

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

Теперь давайте возьмем еще один пример собаки.

Предположим, у вас есть требование, когда класс “собака” наследует класс “животное” и “домашнее животное” (см. Рисунок ниже). Но вы не можете расширять два класса в Java. Итак, что бы вы сделали? Решение – интерфейс.

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

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

Класс Dog может распространяться на класс “Животное” и реализовывать интерфейс как “Pet”.

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

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

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

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

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

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

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

Должны знать факты о интерфейсе

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

Резюме :

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

Ответить

Хотите присоединиться к обсуждению?
Не стесняйтесь вносить свой вклад!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *