Polimorfizmus Java Hoppá példa
mi a polimorfizmus a Java-ban?
a polimorfizmus Java-ban akkor fordul elő, ha egy vagy több osztály vagy objektum öröklés útján kapcsolódik egymáshoz. Más szavakkal, egy tárgy képes számos formát ölteni. Az öröklés lehetővé teszi a felhasználók számára az attribútumok és módszerek öröklését, a polimorfizmus pedig ezeket a módszereket használja különböző feladatok elvégzésére. Tehát a cél a kommunikáció, de a megközelítés más.
például van egy okostelefon a kommunikációhoz., A választott kommunikációs mód bármi lehet. Ez lehet hívás, szöveges üzenet, kép üzenet, levél stb. Tehát a cél gyakori, ami a kommunikáció, de megközelítésük más. Ezt polimorfizmusnak nevezik.
ebben a bemutatóban megtudhatja –
- mi a polimorfizmus?
- Java Polymorphism in OOP ‘ s with Example
- Method surprising
- különbség a túlterhelés és Felülbírálás között
- mi a dinamikus polimorfizmus?,
- Super kulcsszó
- különbség a statikus& dinamikus polimorfizmus
kattintson ide, ha a videó nem érhető el
Java polimorfizmus az OOP példáján
van egy szülőosztályunk, ‘számla’ a befizetés és visszavonás függvényében. Számla 2 gyermek osztályok
a művelet a betét és visszavonja ugyanaz a megtakarítás és ellenőrzés számlák. Tehát a fiókosztály örökölt módszerei működni fognak.,
a Szoftverszükséglet változása
megváltozik a követelmény specifikációja, ami annyira gyakori a szoftveriparban. Állítólag hozzá funkcionalitás privilegizált banki számla folyószámlahitel létesítmény.
háttér esetén a folyószámlahitel olyan lehetőség,ahol a rendelkezésre álló összegnél nagyobb összeget vehet fel a számláján.
tehát, visszavonja módszer kiváltságos igények végre újra., De nem változtatja meg a tesztelt kódot a megtakarítási számlán. Ez az előnye, Hoppá
1.lépés), hogy ha a” visszavont ” módszer megtakarítás számla hívják módszer szülő számla osztály végrehajtásra kerül.
2.lépés), de amikor a privilegizált fiók “visszavonása” (folyószámlahitel-lehetőség) módszerét a privilegizált osztályban meghatározott visszavonási módszernek nevezik, végrehajtásra kerül. Ez polimorfizmus.,
a Szuperosztályú módszer újraértelmezése egy alosztályban.
A
- metódus-aláírás, azaz metódusnév, Paraméterlista és visszatérési típus szabályainak pontosan meg kell egyezniük.
- a felülírott módszer kibővítheti a hozzáférhetőséget, de nem szűkítheti, azaz ha az alaposztályban privát, akkor a gyermekosztály nyilvánosságra hozhatja, de nem fordítva.,
különbség a túlterhelés és a Felülbírálás között
mi a dinamikus polimorfizmus?
a dinamikus polimorfizmus az a mechanizmus, amellyel több módszer definiálható azonos névvel és aláírással a szuperosztályban és az alosztályban. A felülbírált módszerre való hívás futási időben megoldódik.,
Dinamikus Polimorfizmus Példa:
A referencia változó a super osztály utalhat, hogy egy sub osztályú objektum
Doctor obj = new Surgeon();
Fontolja meg a nyilatkozatot,
obj.treatPatient();
Itt a referencia változó “obj” a szülő osztály, de az objektumra mutat, hogy a gyermek osztály (ahogy az ábra is mutatja).
obj.,n
Ha egy base class hivatkozás hívta a módszer a módszer lehet hivatkozni döntött a JVM, attól függően, hogy az objektum a hivatkozás mutat, hogy
például, bár obj egy referencia Orvos felhívja a módszer a Sebész, mint rámutat, hogy a Sebész objektum
Ez itt során úgy döntöttek, run-time, ezért nevezik dinamikus vagy run-time polimorfizmus
Super Kulcsszó
Mi van, ha a treatPatient módszer a Sebész osztály akarja végrehajtani a funkciót pontjában meghatározott Orvos osztály, majd hajtsa végre a saját speciális funkció?,
ebben az esetben a super
kulcsszó használható a szülői osztály módszereinek eléréséhez a gyermekosztályból.
a sebész osztályban a treatPatient módszer a következőképpen írható:
treatPatient(){ super.treatPatient(); //add code specific to Surgeon}
a Super kulcsszó felhasználható az alosztály szuperosztályának bármely adattagjának vagy módszereinek elérésére.,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., | a módszer felülírására vonatkozik. |
a hibák, ha vannak ilyenek, a fordításkor megoldódnak. Mivel a kód nem kerül végrehajtásra az összeállítás során, ezért a név statikus. Ex: void sum (int a , int b);void sum (float a, double b);int sum (int a, int b); //compiler gives error. |
ha A referencia-változó hív egy felülírt metódus, a módszer lehet hivatkozni határozza meg a tárgy, a referencia változó mutat. Ez csak futásidőben határozható meg, amikor a kód végrehajtás alatt van, tehát a név dinamikus., Ex: //reference of parent pointing to child object Doctor obj = new Surgeon();// method of child calledobj.treatPatient(); |