Rodzaje dziedziczenia w Javie: pojedyncze, wielokrotne, wielopoziomowe i hybrydowe
Opublikowany: 2021-06-30Wstę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.