Rodzaje dziedziczenia w Javie: pojedyncze, wielokrotne, wielopoziomowe i hybrydowe

Opublikowany: 2021-06-30

Wstęp

Język programowania „Java” jest szeroko stosowany w tworzeniu aplikacji mobilnych, internetowych, stacjonarnych itp. Jest to solidny, wysokopoziomowy i obiektowy język programowania opracowany przez Sun Microsystems w 1995 roku. Pomimo tego, że jest językiem programowania , Java ma interfejs API i środowisko wykonawcze (JRE) i dlatego jest również nazywana platformą.

W Javie istnieje kilka pojęć, z czterema głównymi pojęciami dotyczącymi języka. Są to abstrakcja, enkapsulacja, dziedziczenie i polimorfizm.

W tym artykule skupimy się na koncepcji dziedziczenia w Javie i typach dziedziczenia w java .

Co to jest dziedziczenie?

Jak sama nazwa wskazuje, dziedziczenie oznacza dziedziczenie właściwości. Mechanizm, dzięki któremu klasa może wyprowadzać właściwości innej klasy, nazywa się dziedziczeniem. Dzięki koncepcji dziedziczenia informacje w programie mogą być zorganizowane hierarchicznie.

W Javie koncepcja dziedziczenia pozwala użytkownikom tworzyć klasy i korzystać z właściwości istniejących klas.

Kilka ważnych terminologii związanych z tym pojęciem to:

  • Klasa : jest zdefiniowana jako grupa obiektów o wspólnych właściwościach.
  • Klasa podrzędna : znana również jako klasa pochodna lub rozszerzona, ta klasa dziedziczy cechy z innej klasy. Oprócz dziedziczonych pól i metod, klasa wygenerowana z klasy może dodawać własne pola i metody.
  • Super Class : superklasa reprezentuje klasę, której cechy są dziedziczone przez podklasę.
  • Reusability : Technika ponownego wykorzystania pozwala użytkownikowi stworzyć klasę (nową) zawierającą pola lub metody już istniejącej klasy. Pozwala na ponowne wykorzystanie kodu.

Znaczenie dziedziczenia Javy

Implementacja dziedziczenia w Javie daje następujące korzyści:

  • Dziedziczenie minimalizuje złożoność kodu, minimalizując duplikat kodu. Jeśli ten sam kod ma być używany przez inną klasę, można go po prostu odziedziczyć z tej klasy do jej podklasy. Dlatego kod jest lepiej zorganizowany.
  • Efektywność wykonania kodu wzrasta wraz ze zorganizowaniem kodu w prostszej formie.
  • Pojęcie polimorfizmu może być używane wraz z dziedziczeniem.

Składnia

Podstawowa składnia to

Klasa superklasa {

—————-

}

klasa podklasa rozszerza superklasę

{

————–

—————–

}

Słowo kluczowe „extends” jest używane podczas dziedziczenia klasy. Określa, że ​​funkcjonalność nadklasy jest rozszerzana na podklasę.

Nowo utworzona klasa nazywana jest klasą podrzędną, podczas gdy klasa dziedziczona jest nazywana klasą nadrzędną.

Rysunek 1: Przykład kodu stosującego dziedziczenie java pokazano poniżej

Źródło

W powyższym przykładzie zostały utworzone dwie klasy Calculation i My_Calculation. Metody add() i Subtraction() są dziedziczone z obliczeń klasy do My_Calculation. Słowo kluczowe extends zostało użyte do dziedziczenia metod.

Kompilacja i wykonanie powyższego kodu daje następujące dane wyjściowe.

Rysunek 2: Wyjście kodu z rysunku 1

Źródło

Utworzenie klasy My_Calculation kopiuje zawartość nadklasy do podklasy. Dzięki obiektom podklasy użytkownicy mogą uzyskać dostęp do członka podklasy.

W niektórych przypadkach, gdy musimy odróżnić członków podklasy od nadklasy o tych samych nazwach, używa się słowa kluczowego „super”. Jeśli podobno mamy dwie klasy Sub_class i Super_class posiadające tę samą metodę tj. display(). Implementacja metody jest inna, ale ma tę samą nazwę. W takim przypadku, aby odróżnić nadklasę metody od tej z podklasy, należy użyć słowa kluczowego super.

Rodzaje dziedziczenia Java

W Javie obserwuje się różne rodzaje dziedziczenia:

1. Dziedziczenie jednopoziomowe

Jak sama nazwa wskazuje, ten rodzaj dziedziczenia występuje tylko dla jednej klasy. Tylko jedna klasa pochodzi z klasy nadrzędnej. Schemat blokowy pojedynczego dziedziczenia pokazano poniżej:

Rysunek 3: Graficzna ilustracja dziedziczenia jednopoziomowego

Źródło

Dwie klasy, Klasa A i Klasa B, pokazano na rysunku 3 , gdzie Klasa B dziedziczy właściwości Klasy A.

Rysunek 4 : Przykład kodu stosującego dziedziczenie jednopoziomowe

Źródło

2. Dziedziczenie wielopoziomowe

Dziedziczenie wielopoziomowe obejmuje zaangażowanie co najmniej dwóch lub więcej niż dwóch klas. Jedna klasa dziedziczy cechy z klasy nadrzędnej, a nowo utworzona podklasa staje się klasą bazową dla innej nowej klasy.

Rysunek 5: Schemat blokowy dziedziczenia wielopoziomowego

Źródło

Na diagramie przepływu na rysunku 5 możemy zaobserwować, że Klasa B jest klasą pochodną z Klasy A, a Klasa C jest dalej wyprowadzona z Klasy B. Dlatego koncepcja klasy dziadków pojawia się w dziedziczeniu wielopoziomowym. Jednak członkowie klasy dziadków nie mogą być bezpośrednio dostępni w Javie.

Dlatego Rysunek 5 pokazuje, że Klasa C dziedziczy metody i właściwości zarówno Klasy A, jak i Klasy B.

Poniżej pokazano przykład dziedziczenia wielopoziomowego z trzema klasami X, Y i Z. Klasa Y wywodzi się z klasy X, która dodatkowo tworzy klasę Z.

Rysunek 6: Przykład dziedziczenia wielopoziomowego

Źródło

3. Dziedziczenie hierarchiczne

Typ dziedziczenia, w którym wiele podklas dziedziczy z jednej klasy, jest znany jako dziedziczenie hierarchiczne.

Rysunek 7: Graficzna reprezentacja dziedziczenia hierarchicznego.

Na rysunku 7 możemy zaobserwować, że trzy klasy: Klasa B, Klasa C i Klasa D są dziedziczone z pojedynczej Klasy A. Wszystkie klasy potomne mają tę samą klasę rodzicielską w dziedziczeniu hierarchicznym.

Rysunek 8: Przykładowy kod pokazujący koncepcję dziedziczenia hierarchicznego

Źródło

Powyższy kod generuje dane wyjściowe

miauczenie…

jedzenie…

Poza tymi typami dziedziczenia w Javie istnieją inne typy znane jako dziedziczenie wielokrotne i dziedziczenie hybrydowe. Oba typy nie są obsługiwane przez klasy i można je osiągnąć tylko za pomocą interfejsów.

4. Wielokrotne dziedziczenie

Dziedziczenie wielokrotne to rodzaj dziedziczenia, w którym podklasa może dziedziczyć cechy z więcej niż jednej klasy nadrzędnej.

Rysunek 9: Reprezentacja wielu dziedziczeń

Źródło

Rysunek 4 pokazuje, że Klasa C wywodzi się z dwóch klas Klasy A i Klasy B. Innymi słowy można opisać, że podklasa C dziedziczy właściwości zarówno z Klasy A, jak i B.

5. Dziedziczenie hybrydowe

Dziedziczenie hybrydowe to typ dziedziczenia, który łączy dziedziczenie pojedyncze i wielokrotne. Ponieważ dziedziczenie wielokrotne nie jest obsługiwane przez Javę, dziedziczenie hybrydowe można również osiągnąć wyłącznie za pośrednictwem interfejsów.

Rysunek 10: Reprezentacja dziedziczenia hybrydowego

Źródło

Przy różnych typach dziedziczenia w Javie ostatecznym celem jest tworzenie podklas o właściwościach dziedziczonych z nadklas. Utworzone podklasy mają różne właściwości, którymi są:

  • Pól i metod dziedziczonych w podklasie można używać bezpośrednio.
  • Nowe pola i metody można również zadeklarować w podklasie, której nie ma w nadklasie.
  • Nowa metoda instancji może zostać utworzona w podklasie o takiej samej sygnaturze, jak metoda w nadklasie. Proces jest określany jako nadrzędny.
  • Nowa metoda statyczna może zostać utworzona w podklasie o takiej samej sygnaturze, jak metoda w nadklasie. Proces ten nazywa się ukrywaniem.

Ucz się kursów oprogramowania online z najlepszych światowych uniwersytetów. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.

Wniosek

W artykule omówiono ważną koncepcję dziedziczenia w Javie oraz typy dziedziczenia w Javie . Dziedziczenie jest zatem mechanizmem, w którym możemy ponownie wykorzystać kody w celu przejęcia właściwości klasy do innej klasy. Można to osiągnąć za pomocą różnych typów wzorców dziedziczenia, jak pokazano w artykule. Jednak w koncepcji dziedziczenia jest znacznie więcej. Aby wyróżniać się w dziedzinie programowania, wymagane jest opanowanie złożonego programowania Java. Jeśli marzysz o innowacjach inteligentnych urządzeń, to Executive PG Program w Full-stack Software Development oferowany przez upGrad's będzie najlepszym wyborem. Certyfikowany przez Liverpool John Moores University kurs we współpracy z IIIT Bangalore oferuje ponad 500 godzin nauki i jest przeznaczony dla początkujących profesjonalistów. Umiejętności zdobyte na kursie upGrad pomogą w otwarciu możliwości w zakresie tworzenia oprogramowania, tworzenia stron internetowych, programisty javascript itp. Otwarty dla każdej płci w grupie wiekowej 21-45, interaktywny program może być najlepszym wyborem dla wszyscy koderzy.

Co to jest dziedziczenie?

Dziedziczenie to proces, w którym nowy obiekt nabywa właściwości poprzedniego obiektu. Jako przykład możesz rozważyć klasę „człowiek”. Może istnieć wiele właściwości ludzi, które chcesz uwzględnić w swojej klasie, takich jak wzrost, waga itp. Tak więc jednym ze sposobów, aby to zrobić, jest ponowne zdefiniowanie wszystkich tych właściwości w swojej klasie. Może to być dobry sposób na naukę programowania obiektowego, ale nie jest to dobra praktyka. Najlepszym sposobem na to jest odziedziczenie wszystkich tych właściwości z określonej klasy. Klasa „dziecko” może dziedziczyć wszystkie właściwości klasy „człowiek” (lub „rodzic”). Nazywa się to dziedziczeniem w programowaniu obiektowym.

Co to jest programowanie obiektowe?

Co to jest dziedziczenie wielokrotne?