Interfejs w Java z Przykładem

W czym jest interfejs Java?

An Interfejs w Java język programowania definiuje się jako typ abstrakcyjny używany do określania zachowania klasy. A Java interfejs zawiera stałe statyczne i metody abstrakcyjne. Klasa może implementować wiele interfejsów. W Java, interfejsy są deklarowane przy użyciu słowa kluczowego interfejs. Wszystkie metody w interfejsie są domyślnie publiczne i abstrakcyjne.

Składnia deklarowania interfejsu

Aby użyć interfejsu w swojej klasie, dodaj słowo kluczowe „implementy” po nazwie klasy, a następnie nazwę interfejsu.

interface {
//methods
}

Przykład implementacji interfejsu

Teraz przyjrzyjmy się interfejsowi Java z przykładem:

class Dog implements Pet
interface RidableAnimal extends Animal, Vehicle

Kliknij tutaj jeśli film nie jest dostępny

Dlaczego wymagany jest interfejs?

Aby zrozumieć użycie interfejsu w Java lepiej, zobaczmy Java przykład interfejsu. Klasa „Media Player” ma dwie podklasy: odtwarzacz CD i odtwarzacz DVD. Każdy ma swoją unikalną implementację interfejsu w Java sposób odtwarzania muzyki.

Dlaczego wymagany jest interfejs

Inna klasa „napędu Combo” dziedziczy zarówno dyski CD, jak i DVD (patrz ilustracja poniżej). Którą metodę gry powinien odziedziczyć? Może to powodować poważne problemy projektowe. I stąd, Java nie pozwala na wielokrotność dziedzictwo.

Dlaczego wymagany jest interfejs

Weźmy teraz inny przykład psa.

Załóżmy, że masz wymaganie, w którym klasa „pies” dziedziczy klasy „zwierzę” i „Zwierzę” (patrz obrazek poniżej). Ale nie możesz rozszerzyć dwóch klas Java. Więc co byś zrobił? Rozwiązaniem jest interfejs.

Dlaczego wymagany jest interfejs

Zbiór zasad dotyczących interfejsu mówi:

  • A Java interfejs implementacji jest w 100% klasą abstrakcyjną i ma tylko metody abstrakcyjne.
  • Klasa może implementować dowolną liczbę interfejsów.

Klasa Pies może rozszerzyć się na klasę „Zwierzę” i zaimplementować interfejs jako „Zwierzę”.

Dlaczego wymagany jest interfejs

Java Przykład interfejsu:

Rozumiemy poniższy program interfejsu w Java:

Krok 1) Skopiuj poniższy kod do edytora.

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();
  }
}

Krok 2) Zapisz, skompiluj i uruchom kod. Obserwuj wyjście interfejsu w Java program.

Różnica między klasą a interfejsem

Klasa
Interfejs
W klasie możesz utworzyć instancję zmiennej i utworzyć obiekt. W interfejsie nie można utworzyć instancji zmiennej ani utworzyć obiektu.
Klasa może zawierać konkretne (wraz z implementacją) metody Interfejs nie może zawierać konkretnych (z implementacją) metod
Specyfikatory dostępu używane z klasami są prywatne, chronione i publiczne. W interfejsie używany jest tylko jeden specyfikator – Publiczny.

Kiedy używać interfejsu i klasy abstrakcyjnej?

  • Użyj klasy abstrakcyjnej, gdy trzeba zdefiniować szablon dla grupy podklas
  • Użyj interfejsu, gdy trzeba zdefiniować rolę dla innych klas, niezależnie od drzewa dziedziczenia tych klas

Musisz znać fakty na temat interfejsu

  • A Java klasa może implementować wiele Java Interfejsy. Konieczne jest, aby klasa implementowała wszystkie metody zadeklarowane w interfejsach.
  • Klasa powinna zastąpić wszystkie metody abstrakcyjne zadeklarowane w interfejsie
  • Interfejs umożliwia wysłanie komunikatu do obiektu bez względu na to, do jakiej klasy on należy.
  • Klasa musi zapewniać funkcjonalność metod zadeklarowanych w interfejsie.
  • Wszystkie metody w interfejsie są domyślnie publiczne i abstrakcyjne
  • Nie można utworzyć instancji interfejsu
  • Odwołanie do interfejsu może wskazywać na obiekty jego klas implementujących
  • Interfejs może rozciągać się od jednego lub wielu interfejsów. Klasa może rozszerzać tylko jedną klasę, ale implementować dowolną liczbę interfejsów
  • Interfejs nie może implementować innego interfejsu. W razie potrzeby musi rozbudować kolejny interfejs.
  • Interfejs zadeklarowany wewnątrz innego interfejsu nazywany jest interfejsem zagnieżdżonym
  • W momencie deklaracji zmienna interfejsu musi zostać zainicjowana. W przeciwnym razie kompilator zgłosi błąd.
  • Klasa nie może zaimplementować dwóch interfejsów w Javie, które mają metody o tej samej nazwie, ale innym typie zwracanym.

Podsumowanie:

  • Klasa implementująca interfejs musi zapewniać funkcjonalność metod zadeklarowanych w interfejsie
  • Wszystkie metody w interfejsie są domyślnie publiczne i abstrakcyjne
  • Nie można utworzyć instancji interfejsu
  • Odwołanie do interfejsu może wskazywać na obiekty jego klas implementujących
  • Interfejs może rozciągać się od jednego lub wielu interfejsów. Klasa może rozszerzać tylko jedną klasę, ale implementować dowolną liczbę interfejsów