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

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

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

Синтаксис за деклариране на интерфейс

За да използвате интерфейс във вашия клас, добавете ключовата дума „implements“ след името на вашия клас, последвана от името на интерфейса.

interface {
//methods
}

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

Сега нека разберем интерфейса в Java с пример:

class Dog implements Pet
interface RidableAnimal extends Animal, Vehicle

Кликнете тук ако видеото не е достъпно

Защо е необходим интерфейс?

За да разберете използването на интерфейс в Java по-добре, нека видим Java пример за интерфейс. Класът “Медиен плейър” има два подкласа: CD плейър и DVD плейър. Всеки има своя уникална реализация на интерфейса Java метод за възпроизвеждане на музика.

Защо е необходим интерфейс

Друг клас „Комбо устройство“ наследява както CD, така и DVD (вижте изображението по-долу). Кой метод на игра трябва да наследи? Това може да причини сериозни проблеми с дизайна. и следователно, Java не позволява множество наследство.

Защо е необходим интерфейс

Сега нека вземем друг пример за Куче.

Да предположим, че имате изискване, при което клас „куче“ наследява клас „животно“ и „Домашен любимец“ (вижте изображението по-долу). Но не можете да разширите два класа Java. И така, какво бихте направили? Решението е интерфейс.

Защо е необходим интерфейс

Правилникът за интерфейса казва,

  • A Java implement интерфейсът е 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 програма.

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

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

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

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

Трябва да знаете факти за интерфейса

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

Резюме:

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