czym jest polimorfizm w Javie?
polimorfizm w Javie występuje, gdy istnieje jedna lub więcej klas lub obiektów powiązanych ze sobą dziedziczeniem. Innymi słowy, jest to zdolność obiektu do przyjmowania wielu form. Dziedziczenie pozwala użytkownikom dziedziczyć atrybuty i metody, a polimorfizm wykorzystuje te metody do wykonywania różnych zadań. Tak więc celem jest komunikacja, ale podejście jest inne.
na przykład masz smartfon do komunikacji., Wybrany tryb komunikacji może być dowolny. Może to być połączenie, wiadomość tekstowa, wiadomość obrazkowa, Poczta itp. Tak więc cel jest wspólny, czyli komunikacja, ale ich podejście jest inne. Nazywa się to polimorfizmem.
w tym tutorialu dowiesz się-
- czym jest polimorfizm?
- polimorfizm Javy w OOP ' ach z przykładem
- nadpisywanie metody
- różnica między przeciążeniem a nadpisywaniem
- czym jest polimorfizm dynamiczny?,
- Super Keyword
- różnica między Static & dynamiczny polimorfizm
Kliknij tutaj, jeśli film nie jest dostępny
polimorfizm Javy w OOP z przykładem
mamy jedną klasę nadrzędną, 'konto' z funkcją wpłaty i wypłaty. Konto posiada 2 klasy
obsługa wpłat i wypłat jest taka sama dla kont oszczędnościowych i sprawdzających. Tak więc metody dziedziczone z klasy Account będą działać.,
Zmiana wymagań oprogramowania
zmiana specyfikacji wymagań jest czymś, co jest tak powszechne w branży oprogramowania. Należy dodać funkcjonalność uprzywilejowanego konta bankowego z kredytem w rachunku bieżącym.
debet w rachunku bieżącym to instrument, w którym możesz wypłacić kwotę większą niż dostępne saldo na koncie.
tak więc wycofaj metodę na potrzeby uprzywilejowane, aby zaimplementować ją na nowo., Ale nie zmieniasz testowanego fragmentu kodu na koncie oszczędnościowym i czekowym. Jest to zaleta OOPS
Krok 1) taki, że gdy metoda „wycofana” do zapisywania konta jest wywoływana metoda z klasy konta nadrzędnego jest wykonywana.
Krok 2) ale gdy metoda” wypłata ” dla konta uprzywilejowanego (debet) jest wywoływana metoda wypłaty zdefiniowana w klasie uprzywilejowanej jest wykonywana. To polimorfizm.,
nadpisywanie metody
nadpisywanie metody jest przedefiniowaniem metody super klasy w podklasie.
reguły nadpisywania metod
- podpis metody, tj. nazwa metody, Lista parametrów i typ zwracanego polecenia muszą być dokładnie dopasowane.
- metoda nadpisana może rozszerzyć dostępność, ale nie zawęzić jej, tzn. jeśli jest prywatna w klasie bazowej, Klasa potomna może uczynić ją publiczną, ale nie odwrotnie.,
przykład
różnica między przeciążeniem a nadpisaniem
czym jest polimorfizm dynamiczny?
polimorfizm dynamiczny jest mechanizmem, za pomocą którego można zdefiniować wiele metod o tej samej nazwie i sygnaturze w klasie nadrzędnej i podklasie. Wywołanie nadpisanej metody jest rozwiązywane w czasie wykonywania.,
dynamiczny polimorfizm przykład:
zmienna referencyjna klasy super może odnosić się do obiektu podrzędnego
Doctor obj = new Surgeon();
rozważmy polecenie
obj.treatPatient();
tutaj zmienna referencyjna „obj” jest klasą nadrzędną, ale obiekt, na który wskazuje, jest klasą podrzędną (jak pokazano w sekcji diagram).
obj.,n
Jeśli do wywołania metody używane jest odwołanie do klasy bazowej, o wywołaniu metody decyduje JVM, w zależności od obiektu, do którego odnosi się
na przykład, mimo że obj jest odniesieniem do lekarza, wywołuje metodę chirurga, ponieważ wskazuje na obiekt chirurga
jest to określane w czasie wykonywania i stąd określane jako dynamiczny lub polimorfizm czasu wykonywania
Super słowo kluczowe
Co zrobić, jeśli metoda leczenia w klasie chirurga chce wykonać funkcjonalność zdefiniowaną w klasie lekarza, a następnie wykonać własną specyficzną funkcjonalność?,
w tym przypadku można użyć słowa kluczowego super
, aby uzyskać dostęp do metod klasy rodzica z klasy potomnej.
metoda treatPatient w klasie chirurga może być zapisana jako:
treatPatient(){ super.treatPatient(); //add code specific to Surgeon}
słowo kluczowe super może być użyte do uzyskania dostępu do dowolnego elementu danych lub metod klasy super w podklasie.,br>Example:-To learn Inheritance, Polymorphism & super keyword
Step 1) Copy the following code into an Editor
Difference between Static & Dynamic Polymorphism
|
|
---|---|
It relates to method overloading., | odnosi się do nadpisywania metod. |
błędy, jeśli występują, są usuwane podczas kompilacji. Ponieważ kod nie jest wykonywany podczas kompilacji, stąd nazwa static. Ex: void sum (int a , int b);void sum (float a, double b);int sum (int a, int b); //compiler gives error. |
w przypadku, gdy zmienna referencyjna wywołuje nadpisaną metodę, metoda, która ma być wywołana, jest określona przez obiekt, na którą wskazuje twoja zmienna referencyjna. To jest można określić tylko podczas wykonywania kodu, stąd nazwa dynamic., Ex: //reference of parent pointing to child object Doctor obj = new Surgeon();// method of child calledobj.treatPatient(); |