Preopterećenje i nadjačavanje metoda dva su načina na koja Java pokazuje polimorfizam. Polimorfizam dolazi od kombinacije dviju grčkih riječi: "poli" što znači mnogo i "morph" što znači oblik. Stoga polimorfizam omogućuje metodama poprimanje mnogih oblika.

Slijedite ovaj vodič da biste naučili kako preopteretiti ili poništiti metode u Javi.

Što je preopterećenje metode?

"Preopterećenje metode" odnosi se na definiranje različitih metoda u klasi s istim nazivom. Metode moraju imati različite potpise. Potpis metode kombinacija je imena metode i popisa parametara. Ne uključuje vrstu povrata.

Prevoditelj zna koju će se metodu koristiti provjerom vrste, broja parametara i redoslijeda u kojem su postavljeni.

Povezano: Istraživanje nasljeđa u programskom jeziku Java

Preopterećenje metode pokazuje polimorfizam vremena kompajliranja. Polimorfizam kompajliranog vremena znači da Java kompajler veže objekt na njegovu funkcionalnost tijekom izvođenja. Prevoditelj provjerava potpise metoda da bi to postigao.

instagram viewer

Ova vrsta polimorfizma poznata je i kao statičko ili rano vezanje.

Pogledajte dolje primjer preopterećenja metode:

razred Aritmetika {
int kocka (int x) {
povratak x * x * x;
}
dvostruka kocka (dupla x) {
povratak x * x * x;
}
plutajuća kocka (float x) {
povratak x * x * x;
}
javna statička void glavna (String [] args) {
Aritmetika myMultiplication = nova aritmetika ();
System.out.println ("Kocka od 5 je" + myMultiplication.cube (5));
System.out.println ("Kocka 5.0 je" + myMultiplication.cube (5.0));
System.out.println ("Kocka od 0,5 je" + myMultiplication.cube (0,5));
}
}

Izlaz:

Kocka 5 je 125
Kocka 5.0 iznosi 125,0
Kocka 0,5 iznosi 0,125

Gornji kod pokazuje kako možete dobiti kocku različitih vrsta (int, dvostruko, plutati) koristeći istu metodu.

Općenito, preopterećenje metoda koristi se za definiranje sličnih metoda s različitim vrstama parametara.

Što je nadjačavanje metode?

To se odnosi na drugačiju provedbu metode u podrazredu. Metoda je već trebala biti definirana u roditeljskoj klasi.

Nadređena metoda (tj. Ona u podrazredu) mora imati isti potpis metode kao ona u nadrazredu. Tip povrata metode nadjačavanja može biti isti ili podtip tipa u superrazredu.

Nadjačavanje se obično koristi za uključivanje specifične provedbe ponašanja objekta u podrazred.

class Account {
javna void poruka () {
System.out.println ("
Hvala vam što ste otvorili račun kod nas! ");
}
javna statička void glavna (String args []) {
Račun myAccount = novi račun ();
Štednja mySavings = nova štednja ();
FixedDeposit myFixedDepo = novi FixedDeposit ();
myAccount.message ();
mySavings.message ();
myFixedDepo.message ();
}
}
class Štednja proširuje račun {
javna void poruka () {
System.out.println ("
Zahvaljujemo što ste otvorili štedni račun kod nas! ");
}
}
klasa FixedDeposit proširuje račun {
javna void poruka () {
System.out.println ("
Zahvaljujemo što ste otvorili račun s fiksnim depozitom kod nas! ");
}
}

Izlaz:

Zahvaljujemo što ste otvorili račun kod nas!
Zahvaljujemo što ste otvorili štedni račun kod nas!
Zahvaljujemo što ste otvorili račun s fiksnim depozitom kod nas!

Gornji primjer pokazuje kako metoda poruka() je poništeno u potklasama Štednja i Fiksni depozit. Prikazaće se različite poruke za vlasnike bankovnih računa s štednim računom i one s računom s fiksnim depozitom.

Povezano: Što trebate znati o korištenju žica u Javi

Također je vrijedno napomenuti da nadjačavanje metode pokazuje polimorfizam izvođenja ili dinamičko slanje metode. To znači da se metoda koju treba pozvati rješava u vrijeme izvođenja, a ne u kompilaciji.

Da biste izbjegli nadjačavanje metode, upotrijebite ključnu riječ konačni.

konačna void poruka () {
System.out.println ("
Hvala vam što ste otvorili račun kod nas! ");
}

Kada ga potklasa pokuša nadjačati, pojavit će se pogreška u kompilaciji.

U idealnom slučaju, trebale bi biti sve metode pozvane unutar konstruktora konačni. Na taj se način izbjegavaju nenamjerne promjene koje mogu biti uzrokovane potklasama.

Ponekad ćete možda trebati pristupiti nadjačanoj metodi unutar nadjačane metode. Možete koristiti ključnu riječ super slijedi operater točke (.) i naziv metode u takvom slučaju.

Razmotrite superklasu Životinja.

razred Animal {
javni void potez () {
System.out.println ("
Mogu se kretati. ");
}
}

Ispod je podrazred, tzv Riba, to poništava potez():

razred Riba produžuje Animal {
javni void potez () {
System.out.println ("
Znam plivati.");
super.move ();
}
javna statička void glavna (String args []) {
Riba Tilapija = nova Riba ();
Tilapia.move ();
}
}

Izlaz:

Znam plivati.
Mogu se kretati.

Kada nadjačavate metodu, također morate imati na umu korišteni modifikator pristupa. Modifikator u podrazredu trebao bi imati istu razinu vidljivosti ili višu nego u osnovnoj klasi. Na primjer, ako je metoda u osnovnoj klasi definirana kao zaštićen, tada metoda nadjačavanja može biti zaštićen ili javnost.

Jednostavan kod s polimorfizmom

Nadjačavanje i preopterećenje metoda važno je za pojednostavljenje koda, a jednostavni kôd je dobra praksa.

Zašto? Zamislite složenu bazu kodova s ​​više ulazaka i izlaza nego Grand Central Station. Sad zamislite da razorna buba počne uništavati vaš naporan rad pred vašim očima. Morate izolirati izvor zaraze i to morate učiniti brzo.

Sretno, niste pojednostavili svoj kod... Sad ćete dobiti istinsku lekciju iz kriptografije. Upotreba učinkovitih struktura podataka i čineći sve što možete da skratite kôd (na primjer imajte na umu SUHO) vaša je najbolja obrana od ovakve situacije.

Sljedeće na popisu za učenje Java trebao bi raditi s nizovima. To su važne podatkovne strukture koje se koriste za spremanje serija podataka.

E-mail
Kako stvoriti i izvesti operacije na nizovima u Javi

Učite Java? Neka nizovi s lakoćom obrađuju vaše podatke.

Pročitajte Dalje

Povezane teme
  • Programiranje
  • Java
  • Vodiči za kodiranje
O autoru
Jerome Davidson (Objavljeno 15 članaka)

Jerome je zaposlenik u MakeUseOf-u. Obrađuje članke o Programiranju i Linuxu. Također je kripto entuzijast i uvijek prati kripto industriju.

Više od Jeromea Davidsona

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e-knjige i ekskluzivne ponude!

Još jedan korak…!

Potvrdite svoju e-adresu u e-pošti koju smo vam upravo poslali.

.