Dziedziczenie w programach operacyjnych Java z przykładem

Co is Inheritance?

Dziedziczenie to mechanizm, w którym jedna klasa nabywa własność innej klasy. Na przykład dziecko dziedziczy cechy swoich rodziców. Dzięki dziedziczeniu możemy ponownie wykorzystać pola i metody istniejącej klasy. W związku z tym dziedziczenie ułatwia wielokrotne użycie i jest ważną koncepcją OOP.

W tym samouczku nauczysz się –

  • Typy dziedziczenia
  • Dziedziczenie w Javie
  • Java Przykład dziedziczenia
  • Super słowo kluczowe
  • Naucz się dziedziczenia w OOP na przykładzie

Typy dziedziczenia

Istnieją Różne typy dziedziczenia w Javie:

Pojedyncze dziedziczenie:

W przypadku pojedynczego dziedziczenia jedna klasa rozszerza inną klasę (tylko jedna klasa).

Pojedyncze dziedziczenie

Na powyższym schemacie klasa B jest rozszerzeniem tylko klasy A. Klasa A to super klasa, a klasa B jest podklasą.

wielokrotne dziedziczenie:

W przypadku wielokrotnego dziedziczenia jedna klasa rozszerza więcej niż jedna klasa. Java nie obsługuje dziedziczenia wielokrotnego.

Dziedziczenie wielokrotne

Jak na powyższym schemacie, klasa C rozszerza zarówno klasę A, jak i klasę B.

Dziedziczenie wielopoziomowe:

W dziedziczeniu wielopoziomowym jedna klasa może dziedziczyć z klasy pochodnej. W związku z tym klasa pochodna staje się klasą bazową dla nowej klasy.

Dziedziczenie wielopoziomowe

Jak pokazano na diagramie, klasa C jest podklasą klasy B, a B jest podklasy Klasa A.

Dziedziczenie hierarchiczne:

W dziedziczeniu hierarchicznym jedna klasa jest dziedziczona przez wiele podklas.

Dziedziczenie hierarchiczne

Jak w powyższym przykładzie, klasy B, C i D dziedziczą to samo klasa A.

Dziedziczenie hybrydowe:

Dziedziczenie hybrydowe to połączenie dziedziczenia pojedynczego i wielokrotnego.

Dziedziczenie hybrydowe

Jak w powyższym przykładzie, wszyscy publiczni i chronieni członkowie klasy A są dziedziczony do klasy D, najpierw przez klasę B, a po drugie przez klasę C.

Uwaga: Java nie obsługuje dziedziczenia hybrydowego / wielokrotnego

Dziedziczenie w Javie

JAVA INHERITANCE to mechanizm, w którym jedna klasa uzyskuje własność innej klasy. W Javie, gdy istnieje relacja „Is-A” między dwiema klasami, używamy dziedziczenia. Klasa nadrzędna nazywana jest super klasa, a dziedziczona klasa nazywana jest podklasą. Słowo kluczowe extends jest używane przez podklasę do dziedziczenia cech superklasy.

Dziedziczenie jest ważna, ponieważ prowadzi do możliwości ponownego wykorzystania kodu.

Składnia dziedziczenia Java:

class subClass extends superClass { //methods and fields } 

Dziedziczenie Java E xample

Super słowo kluczowe

Super słowo kluczowe jest podobne do słowa kluczowego „this”.

Słowo kluczowe super może być użyte w celu uzyskania dostępu do dowolnego elementu danych lub metod klasy nadrzędnej.

Super słowo kluczowe może być używane na poziomie zmiennych, metod i konstruktorów.

Składnia:

super.<method-name>();

Naucz się dziedziczenia w OOP z przykładem

Rozważ tę samą aplikację bankową z poprzedniego przykładu .

Mamy otworzyć dwa różne typy kont, jedno do zapisywania, a drugie do sprawdzania (znane również jako bieżące).

Porównajmy i przestudiujmy, jak możemy podejść do kodowania z perspektywy programowania strukturalnego i obiektowego. Podejście strukturalne: W programowaniu strukturalnym stworzymy dwie funkcje –

  1. Jedna do wypłaty
  2. A druga do akcji wpłaty.

Ponieważ działanie tych funkcji pozostaje takie samo na wszystkich kontach.

Podejście OOP: Korzystając z podejścia programowania OOP. Stworzylibyśmy dwie klasy.

  • Każdy ma implementację funkcji wpłat i wypłat.
  • Spowoduje to zbędną dodatkową pracę.

Wniosek o zmianę oprogramowania

Teraz nastąpiła zmiana w specyfikacji wymagań dla czegoś, co jest tak powszechne w branży oprogramowania. Powinieneś dodać funkcjonalność uprzywilejowanego konta bankowego z linią debetową. Na marginesie, debet to instrument, z którego możesz wypłacić kwotę wyższą niż dostępne saldo na koncie.

Podejście strukturalne: Używając podejścia funkcjonalnego, muszę zmodyfikować moją funkcję wycofywania, który jest już przetestowany i ustalony na poziomie podstawowym. Dodanie metody jak poniżej zajmie się nowymi wymaganiami.

Podejście OOP: używając podejścia OOP, wystarczy napisz nową klasę z unikalną implementacją funkcji wycofania. Nigdy nie dotknęliśmy testowanego fragmentu kodu.

Kolejna prośba o zmianę

Co się stanie, jeśli zmieni się wymaganie dalej? Chciałbym dodać konto karty kredytowej z własnym unikalnym wymogiem depozytów.

Podejście strukturalne: Używając podejścia strukturalnego, musisz zmienić testowany fragment kodu depozytu jeszcze raz.

Podejście OOP: ale używając podejścia obiektowego, wystarczy utwórz nową klasę z jej unikalną implementacją metody depozytu (zaznaczoną na czerwono na poniższym obrazku).

Tak więc, mimo że programowanie strukturalne wydaje się początkowo łatwym podejściem, OOP wygrywa w dłuższej perspektywie.

Zalety dziedziczenia w obiektach operacyjnych

Ale można argumentuj, że we wszystkich klasach masz powtarzające się fragmenty kodu.

Aby temu zaradzić, tworzysz klasę nadrzędną, mówisz „konto” i wdrażasz tę samą funkcję wpłaty i wypłaty. I uczyń klasy potomne dziedziczoną klasą „konta”. Aby mieć dostęp do funkcji wypłat i wpłat w klasie konta.

Funkcje nie muszą być wdrażane indywidualnie. To jest dziedziczenie w java. .

Write a Comment

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *