Sissejuhatus Java polümorfismi
Polümorfism on mõiste, mida saab ühe toimingu abil läbi viia mitmel viisil. Sõna pärines kahest kreeka sõnast, mis on nii polü kui ka morf. Nagu te võib-olla teate, tähendab "polü" paljusid, aga ka "morfid" tähendab paljusid vorme. Seetõttu tähendaks sõna polümorfism paljusid vorme. Mõistagem nüüd üksikasjalikult java polümorfismi.
Kuidas Java polümorfism toimib?
Polümorfism on OOO programmeerimise karakteristik. Iga kord, kui me seda kasutame, on klassil võimalus näidata mitmeid funktsioone, isegi kui neil on ühine liides. Seetõttu võime eeldada, et pikk sõna ütleb tegelikult väga lihtsa mõiste.
Polümorfismi juures väärib märkimist see, et kogu arvukates klassides eksisteeriv töökood ei pea tegelikult mõistma klassi, mida see samal viisil ära kasutab, on sama.
Oletagem polümorfismi reaalse maailma näide. Oletagem nuppu. Kõik teate, et kui rakendame pisut survet, saate nuppu vajutada, kuid me ei tea nupule survestamise väljundit ja kasutamise eesmärki. Niisiis, juhtige tähelepanu sellele, et siin tuleb hoolitseda, et mõlemal juhul ei mõjuta tulemus kasutatavat protseduuri.
Seega on polümorfismi põhieesmärk teha objekte, mis on sõltuvalt vajadustest omavahel asendatavad.
Polümorfismi tüübid Java-s
Kaks polümorfismi tüüpi on kompileeritud aja polümorfism ja jooksva aja polümorfism. Kompileeritud aja polümorfism teostatakse meetodi ülekoormamise teel ja käitusaegne polümorfism meetodi alistamisega.
Kestuspolümorfism, mida nimetatakse ka dünaamilise meetodi dispetšiks, on protsess, kus ülespakutud meetodi kutsumine lahendatakse töö ajal, vaatamata kompileerimise ajale. Siin kutsutakse ülepakutud meetod läbi vanema klassi referentsmuutuja. Samuti ei saa andmeliikmed saavutada Runtime'i polümorfismi.
Polümorfismi olulisus Java-s
Kui loobume dünaamilisest ja staatilisest polümorfismist, on programmeerimisel olemas mõned Java programmeerimisomadused, millel on polümorfism, mis erineb neist kahest olulisest tüübist.
Need on need - sunnid, operaatori ülekoormus ja polümorfsed parameetrid.
Sundimine
Proovime selle näite kaudu saada sundi tähendust. Eeldame, et stringi väärtus on ühisväärtus: Oletagem teine number, millel on väärtus 2. Nüüd, mis juhtuks, kui selle stringi väärtus koos selle numbriga liidetakse? Tulemus, mis me sellest liitumisest välja saame, oleks “kaasväärtus: 2”. Seda nimetatakse sunniks. See on vaikimisi tüüpi teisendus, mis teostatakse vigade vältimise järjekorras.
Operaatori ülekoormus
Kuna alustame operaatori ülekoormamise kontseptsioonist, lubage mul heita pilk ühele stsenaariumile. Oletame, et seal on string, mille väärtus on „Käita”, ja teine, mille väärtus on „Ülekoormus”. Siis kasutaksime plussmärki (+) samal viisil, lisades 2 numbrit. See (+) oleks liidetav. Kui arvestame kahte täisarvu, siis saadakse nende kahe arvu liitmine tagasi. Kui ühel sümbolil või operaatoril on võimalus tõlgendust muuta, võttes arvesse kasutatud protseduuri, nimetatakse tehtud polümorfismi tüüpi operaatori ülekoormamiseks.
Polümorfsed parameetrid
See tähendab juurdepääsu võimaldamist ükskõik millisele objektile ükskõik millisel allpool toodud viisil, nagu on antud -
- Mõlemasse vanemklassi kuuluva võrdlusmuutuja kasutamine.
- Klassi kuuluva etalonmuutuja kasutamine, kus see eksisteerib.
Polümorfismi ulatus
Köitmine tähendab meetodikõne ühendamist meetodikorpusega. Köitmist on kahte tüüpi:
- 1. st on staatiline sidumine, mis tähendab alati, kui kompileerimise ajal on objekti tüüp kindlaks määratud.
- Teine on dünaamiline sidumine, mis tähendab, kui objekti tüüp on tööaja jooksul kindlaks tehtud.
Ainus põhjus, miks polümorfismi nõutakse, peitub selles, et selle mõistet on pärandi rakendamisel tohutult vaja. Lisaks on sellel väga oluline roll, mis võimaldab objektidel liidese jagamisel pärida arvukalt struktuure. Polümorfismi on selgelt mainitud kui ainukest, mida paljude jaoks kaardistatakse.
Näited Java polümorfismist
Allpool on toodud erinevad näited Java polümorfismist:
Näide nr 1 - Java-programm meetodi ülekoormamise tutvustamiseks
Kood:
class methodOverload (
static int multi(int x, int y)
(
return x * y;
)
// Method with the same name but with 2 double arguments
static double multi(double x, double y)
(
return x * y;
)
)
class Main (
public static void main(String() args)
(
System.out.println(methodOverload.multi(6, 2));
System.out.println(methodOverload.multi(1.2, 1.2));
)
)
Väljund:
Näide 2 - Java-programm operaatori ülekoormamise näitamiseks
Kood:
class operator (
void oper(String s, String s2)
(
String s = s + s2;
System.out.println("Concatenated String is"
+ s);
)
void oper(int a, int b)
(
int c = a + b;
System.out.println("Sum is : " + c);
)
)
class Main (
public static void main(String() args)
(
operator o = new operator();
o.oper(1, 2);
o.oper("hi", "bye");
)
)
Väljund:
Näide # 3 - Java programm meetodi ülekoormamiseks
Kood:
class Multi (
// Method with 2 parameter
static int Multi(int a, int b)
(
return a * b;
)
static int Multi(int a, int b, int c)
(
return a * b * c;
)
)
class Main (
public static void main(String() args)
(
System.out.println(Multi.Multi(2, 3));
System.out.println(Multi.Multi(2, 3, 3));
)
)
Väljund:
Järeldus
Ainus põhjus, miks polümorfismi nõutakse, peitub selle kontseptsioonis, mida pärandi rakendamisel on tohutult vaja. Lisaks on sellel väga oluline roll, mis võimaldab objektidel liidese jagamisel pärida arvukalt struktuure. Polümorfismi on selgelt mainitud kui ainukest, mida paljude jaoks kaardistatakse.
Soovitatavad artiklid
See on Java polümorfismi juhend. Siin käsitleme Java polümorfismi toimimist selle tüüpidega ja olulisust koos erinevate näidete ja koodi rakendamisega. Lisateabe saamiseks võite vaadata ka järgmisi artikleid -
- Polümorfism C # -s
- JTextField Java
- C ++ ülekoormamine ja alistamine
- Mis on Java pärand?
- Ülekoormus Java-s
- Pythoni ülekoormamine
- Pythoni pärandi täielik juhend
- Tüübid ja vigade käsitlemine JavaScriptis
- Staatilise ja dünaamilise köitmise eelised