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.
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.
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.
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ę”.
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
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