Preobremenitev in razveljavitev metod sta dva načina, kako Java dokazuje polimorfizem. Polimorfizem izhaja iz kombinacije dveh grških besed: "poli", ki pomeni veliko in "morph", ki pomeni obliko. Zato polimorfizem omogoča, da metode dobijo različne oblike.

Upoštevajte ta vodnik, če želite izvedeti, kako preobremeniti ali preglasiti metode v Javi.

Kaj je preobremenitev metode?

"Preobremenitev metode" se nanaša na definiranje različnih metod v razredu z istim imenom. Metode morajo imeti različne podpise. Podpis metode je kombinacija imena metode in seznama parametrov. Ne vključuje vrste vrnitve.

Prevajalnik ve, katero metodo uporabiti, tako da preveri vrsto, število parametrov in vrstni red, v katerem so postavljeni.

Sorodno: Raziskovanje dedovanja v programskem jeziku Java

Preobremenitev metode kaže polimorfizem časa prevajanja. Polimorfizem prevajalskega časa pomeni, da prevajalnik Java veže objekt na njegovo funkcionalnost med izvajanjem. Prevajalnik preveri podpise metod, da to doseže.

instagram viewer

Ta vrsta polimorfizma je znana tudi kot statična ali zgodnja vezava.

Glejte spodnji primer preobremenitve metode:

razred Aritmetika {
int kocka (int x) {
vrnitev x * x * x;
}
dvojna kocka (dvojni x) {
vrnitev x * x * x;
}
float kocka (float x) {
vrnitev x * x * x;
}
public static void main (String [] args) {
Arithmetic myMultiplication = novo Arithmetic ();
System.out.println ("Kocka 5 je" + myMultiplication.cube (5));
System.out.println ("Kocka 5.0 je" + myMultiplication.cube (5.0));
System.out.println ("Kocka 0,5 je" + myMultiplication.cube (0,5));
}
}

Izhod:

Kocka 5 je 125
Kocka 5.0 znaša 125,0
Kocka 0,5 je 0,125

Zgornja koda prikazuje, kako lahko dobite kocko različnih vrst (int, dvojno, plovec) z uporabo iste metode.

Na splošno se preobremenitev metode uporablja za definiranje podobnih metod z različnimi vrstami parametrov.

Kaj je preglasitev metode?

To se nanaša na drugačno izvajanje metode v podrazredu. Metoda mora biti že definirana v nadrejenem razredu.

Preglasna metoda (tj. Tista v podrazredu) mora imeti enak podpis metode kot v nadrazredu. Vrnitev vrste preglasitvene metode je lahko enaka ali podvrsta tiste v nadrazredu.

Preglasitev se običajno uporablja za vključitev posebne izvedbe vedenja predmeta v podrazred.

razred računa {
javno void sporočilo () {
System.out.println ("
Hvala, ker ste odprli račun pri nas! ");
}
public static void main (String args []) {
Račun myAccount = nov račun ();
Prihranki mySavings = novi prihranki ();
FixedDeposit myFixedDepo = novo FixedDeposit ();
myAccount.message ();
mySavings.message ();
myFixedDepo.message ();
}
}
razred Varčevanje podaljša račun {
javno void sporočilo () {
System.out.println ("
Hvala, ker ste pri nas odprli varčevalni račun! ");
}
}
razred FixedDeposit podaljša račun {
javno void sporočilo () {
System.out.println ("
Hvala, ker ste pri nas odprli račun s fiksnim depozitom! ");
}
}

Izhod:

Hvala, ker ste odprli račun pri nas!
Zahvaljujemo se vam, da ste pri nas odprli varčevalni račun!
Hvala, ker ste pri nas odprli račun s fiksnim depozitom!

Zgornji primer prikazuje, kako metoda sporočilo () je razveljavljeno v podrazredih Prihranki in FixedDeposit. Imetnikom bančnih računov s hranilnim računom in tistim z računom s fiksnim depozitom bodo prikazana različna sporočila.

Sorodno: Kaj morate vedeti o uporabi nizov v Javi

Prav tako je treba omeniti, da preglasitev metode kaže polimorfizem med izvajanjem ali dinamično pošiljanje metode. To pomeni, da je metoda, ki jo je treba poklicati, razrešena med izvajanjem in ne pri prevajanju.

Da bi preprečili razveljavitev metode, uporabite ključno besedo dokončno.

končno nično sporočilo () {
System.out.println ("
Hvala, ker ste odprli račun pri nas! ");
}

Ko ga podrazred poskuša preglasiti, se prikaže napaka pri prevajanju.

V idealnem primeru bi morale biti vse metode, ki se pokličejo znotraj konstruktorja dokončno. S tem se izognemo nenamernim spremembam, ki bi jih lahko povzročili podrazredi.

Včasih boste morda morali dostopati do razveljavljene metode znotraj preglasitvene metode. Uporabite lahko ključno besedo super sledi operator pike (.) in ime metode v takem primeru.

Razmislite o superrazredu Žival.

razred Animal {
javna void poteza () {
System.out.println ("
Lahko se premikam. ");
}
}

Spodaj je podrazred, imenovan Ribe, ki preglasi premakni ():

razred Ribe razširja Animal {
javna void poteza () {
System.out.println ("
Znam plavati.");
super.move ();
}
public static void main (String args []) {
Fish Tilapia = nova riba ();
Tilapia.move ();
}
}

Izhod:

Znam plavati.
Lahko se premikam

Pri razveljavitvi metode morate biti pozorni tudi na uporabljeni modifikator dostopa. Modifikator v podrazredu mora imeti enako stopnjo vidnosti ali višjo kot v osnovnem razredu. Na primer, če je metoda v osnovnem razredu definirana kot zaščiten, potem je lahko metoda preglasitve zaščiten ali javnosti.

Preprosta koda s polimorfizmom

Preglasitev in preobremenitev metode sta pomembni za poenostavitev kode in preprosta koda je dobra praksa.

Zakaj? Predstavljajte si zapleteno kodno bazo z več vhodi in izhodi kot kot Grand Central Station. Zdaj pa si predstavljajte, kako uničujoča napaka začne uničevati vaše trdo delo pred vašimi očmi. Morate izolirati vir okužbe in to morate storiti hitro.

Srečno, niste poenostavili svoje kode... Zdaj boste dobili pravo lekcijo iz kriptografije. Uporaba učinkovitih podatkovnih struktur in poskušanje skrajšati kodo (na primer upoštevanje SUHEGA) je vaša najboljša obramba pred takšnim položajem.

Naslednje na seznamu učenja Java bi moralo biti delo z nizi. So pomembne podatkovne strukture, ki se uporabljajo za shranjevanje paketov podatkovnih točk.

E-naslov
Kako ustvariti in izvajati operacije z nizi v Javi

Učite se Java? Naj polja z lahkoto obdelujejo vaše podatke.

Preberite Naprej

Sorodne teme
  • Programiranje
  • Java
  • Vadnice za kodiranje
O avtorju
Jerome Davidson (15 objavljenih člankov)

Jerome je uslužbenec pri MakeUseOf. Zajema članke o programiranju in Linuxu. Je tudi navdušenec nad kripto in vedno spremlja kripto industrijo.

Več od Jeromea Davidsona

Naročite se na naše novice

Pridružite se našemu glasilu za tehnične nasvete, preglede, brezplačne e-knjige in ekskluzivne ponudbe!

Še en korak…!

Potrdite svoj e-poštni naslov v e-poštnem sporočilu, ki smo vam ga pravkar poslali.

.