Różnica między dziedziczeniem a interfejsem w Javie

Kluczowa różnica - dziedziczenie vs Interfejs w Javie
 

Java to język programowania opracowany przez Sun Microsystems. Java może być używana do tworzenia różnych aplikacji. Jest to język z wieloma paradygmatami, który obsługuje obiektowe, strukturalne itp. Główną zaletą Java jest to, że obsługuje programowanie obiektowe (OOP). Programista może tworzyć klasy i obiekty. Istnieją cztery filary w OOP. Są to dziedzictwo, polimorfizm, abstrakcja i enkapsulacja. Dziedziczenie i interfejsy są powiązane z OOP. The kluczowa różnica między dziedziczeniem a interfejsem jest to Dziedziczenie polega na uzyskiwaniu nowych klas z klas istniejących, a interfejs służy do implementacji klas abstrakcyjnych i wielokrotnego dziedziczenia.

ZAWARTOŚĆ

1. Przegląd i kluczowa różnica
2. Co to jest dziedziczenie w Javie
3. Co to jest interfejs w Javie
4. Podobieństwa między dziedziczeniem a interfejsem w Javie
5. Porównanie obok siebie - Dziedziczenie vs Interfejs w Javie w formie tabelarycznej
6. Podsumowanie

Co to jest dziedziczenie w Javie?

Dziedziczenie może umożliwić ponowne wykorzystanie kodu. Dziedziczenie pomaga ponownie wykorzystać atrybuty i metody istniejącej klasy. Mechanizm wyprowadzania nowej klasy przy użyciu starej klasy nazywa się dziedziczeniem. Stara klasa jest znana jako klasa nadrzędna lub superklasa. Klasa pochodna nazywana jest klasą potomną lub podklasą.

Składnia dziedziczenia Java jest następująca.

klasa nazwa podklasy rozszerza nazwę nadklasy

deklaracja zmienna;

deklaracja metody;

Pojęcie dziedziczenia można wyjaśnić na następującym przykładzie. Załóżmy, że istnieje klasa o nazwie A w następujący sposób.

klasa publiczna A

public void sum ()

System.out.println („Sum”);

Jeśli chcemy dodać nową metodę bez zmiany istniejącej klasy, możemy to zrobić w następujący sposób.

klasa publiczna B

public void sub ()

System.out.println („Sub”);

Programiści mogą korzystać z dziedziczenia w celu użycia sumy klasy A ().

klasa publiczna B rozszerza klasę A

public void sub ()

System.out.println („Sub”);

W głównej funkcji możliwe jest utworzenie obiektu B i wywołanie sub (), która należy do klasy B i sum (), która należy do klasy A za pomocą dziedziczenia.

public static void main (String [] args)

B obj = nowy B ();

obj.sub ();

obj.sum ();

Istnieją różne rodzaje dziedziczenia. Są to dziedziczenie pojedyncze, wielokrotne, wielopoziomowe i hierarchiczne. W pojedyncze dziedzictwo, jest jedna klasa bazowa i jedna klasa pochodna. W dziedziczenie wielopoziomowe, istnieją trzy klasy, mianowicie klasa podstawowa, klasa pośrednia i klasa pochodna. Klasa pośrednia dziedziczy z klasy podstawowej, a klasa pochodna dziedziczy z klasy pośredniej. W dziedziczenie hierarchiczne, istnieje jedna klasa bazowa i wiele klas pochodnych. Istnieje specjalny typ znany jako Dziedziczenie hybrydowe. Jest to połączenie dwóch lub więcej rodzajów dziedziczenia.

Rysunek 01: Dziedziczenie

W Wielokrotne dziedziczenie istnieje wiele klas podstawowych i jedna klasa pochodna. Załóżmy, że klasy A i B są klasami podstawowymi. Klasa C jest klasą pochodną. Jeśli obie klasy A i B mają tę samą metodę, a programista wywoła tę metodę z klasy pochodnej, spowoduje to problem niejednoznaczności. Dziedziczenie dwóch klas może spowodować błąd czasu kompilacji. Dlatego wielokrotne dziedziczenie nie jest obsługiwane w Javie. Do rozwiązania tego problemu można użyć interfejsu.

Co to jest interfejs w Javie?

Abstrakcja to proces ukrywania szczegółów implementacji i wyświetlania użytkownikowi tylko funkcjonalności. Abstrakcję można osiągnąć za pomocą klas abstrakcyjnych lub interfejsów. Metoda abstrakcyjna to metoda bez implementacji. Klasa z co najmniej jedną metodą abstrakcyjną jest klasą abstrakcyjną. Przykład klasy abstrakcyjnej jest następujący.

klasa abstrakcyjna A

streszczenie void sum ();

Załóżmy, że istnieją dwie abstrakcyjne klasy jako A i B. Aby zaimplementować abstrakcyjne metody A i B, tworzona jest nowa klasa C. Następnie klasa C powinna rozszerzyć zarówno A, jak i B., Ale wielokrotne dziedziczenie nie jest obsługiwane w Javie. Dlatego powinien używać interfejsów. Interfejsów można używać do deklarowania metod, ale nie można definiować metod. Nie można utworzyć obiektu za pomocą interfejsów. Klasa C powinna implementować wszystkie metody w interfejsie A i B..

interfejs A

void sum ();

interfejs B

void sub ();

klasa C implementuje A, B

public void sum ()

System.out.println („Podsumowanie”);

public void sub ()

System.out.println („Odejmowanie”);

Teraz w programie głównym można utworzyć obiekt C i wywołać obie metody.

public static void main (String [] args)

C obj = nowy C ();

obj.sum ();

obj.sub ();

Interfejsy mogą więc służyć do implementacji wielokrotnego dziedziczenia.

Innym zastosowaniem interfejsów jest to, że zapewnia bezpieczeństwo. Zobacz poniższy kod.

interfejs A

void sum ();

klasa B implementuje A

public void sum ()

System.out.println („Podsumowanie”);

public void multiply ()

System.out.println („Mnożenie”);

Podczas tworzenia obiektu B można wywoływać obie metody sum () i multiply (). Jeśli programista chce ograniczyć użycie funkcji multiply (), jest to możliwe w następujący sposób.

public static void main (String [] args)

A obj = nowy B ();

obj.sum ();

A obj = nowy B (); stworzy obiekt. Jest typu A, a pamięć jest przydzielana jako B. Możliwe jest wywołanie sum (), ale nie można wykonać mnożenia (). To ograniczenie odbywa się za pomocą interfejsów.

Jakie są podobieństwa między dziedziczeniem a interfejsem w Javie?

  • Obie koncepcje są związane z programowaniem obiektowym
  • Oba reprezentują związek IS-A.

Jaka jest różnica między dziedziczeniem a interfejsem w Javie?

Dziedziczenie a interfejs w Javie

Dziedziczenie to koncepcja OOP polegająca na uzyskiwaniu nowych klas z istniejących klas. Interfejs jest mechanizmem w OOP do implementacji abstrakcji i wielokrotnego dziedziczenia.
Stosowanie
Dziedziczenie zapewnia możliwość ponownego użycia kodu. Interfejsy zapewniają abstrakcję i wielokrotne dziedziczenie.

Podsumowanie - Dziedziczenie vs Interfejs w Javie

Java jest językiem programowania opartym na wielu paradygmatach, który obsługuje programowanie obiektowe. Dziedziczenie i interfejsy są związane z programowaniem obiektowym. Różnica między dziedziczeniem a interfejsem polega na tym, że dziedziczenie polega na uzyskiwaniu nowych klas z istniejących klas, a interfejsy na implementowaniu klas abstrakcyjnych i wielokrotnego dziedziczenia.

Pobierz wersję PDF dziedziczenia vs interfejs w Javie

Możesz pobrać wersję PDF tego artykułu i używać go do celów offline zgodnie z cytatem. Pobierz wersję PDF tutaj Różnica między dziedziczeniem a interfejsem w Javie

Odniesienie:

1.Punkt, samouczki. „Java Inheritance.”, Tutorials Point, 31 października 2017 r. Dostępne tutaj 
2.Punkt, samouczki. „Interfejsy Java”. , Tutorials Point, 31 października 2017 r. Dostępne tutaj 

Zdjęcie dzięki uprzejmości:

1. „CPT-OOP-inheritance-bikes” Autor: Pluke - Praca własna, (domena publiczna) przez Commons Wikimedia