Metodes pārslodze un ignorēšana ir divi veidi, kā Java demonstrē polimorfismu. Polimorfisms rodas, apvienojot divus grieķu vārdus: "poly", kas nozīmē daudzus, un "morph", kas nozīmē formu. Tāpēc polimorfisms ļauj metodēm iegūt dažādas formas.

Izpildiet šo rokasgrāmatu, lai uzzinātu, kā pārslogot vai ignorēt Java metodes.

Kas ir metodes pārslodze?

"Metodes pārslodze" attiecas uz dažādu metožu definēšanu klasē ar tādu pašu nosaukumu. Metodēm jābūt atšķirīgiem parakstiem. Metodes paraksts ir metodes nosaukuma un parametru saraksta kombinācija. Tajā nav iekļauts atgriešanās veids.

Kompilators zina, kuru metodi izmantot, pārbaudot veidu, parametru skaitu un secību, kādā tie tiek ievietoti.

Saistīts: Mantojuma izpēte Java programmēšanas valodā

Metodes pārslodze parāda kompilēšanas laika polimorfismu. Kompilēšanas laika polimorfisms nozīmē, ka Java kompilators izpildes laikā piesaista objektu tā funkcionalitātei. Lai to panāktu, sastādītājs pārbauda metodes parakstus.

Šāda veida polimorfismu sauc arī par statisku vai agrīnu saistīšanos.

instagram viewer

Metodes pārslodzes piemēru skatiet zemāk:

klases aritmētika {
int kubs (int x) {
atgriešanās x * x * x;
}
dubultkubs (dubultā x) {
atgriešanās x * x * x;
}
pludiņa kubs (pludiņš x) {
atgriešanās x * x * x;
}
public static void main (String [] args) {
Aritmētiskā myMultiplication = jauna aritmētika ();
System.out.println ("5 kubs ir" + myMultiplication.cube (5));
System.out.println ("Kuba 5.0 ir" + myMultiplication.cube (5.0));
System.out.println ("0,5 kubs ir" + myMultiplication.cube (0,5));
}
}

Izeja:

5 kubs ir 125
5,0 kubs ir 125,0
0,5 kubs ir 0,125

Iepriekš redzamais kods parāda, kā jūs varat iegūt dažādu veidu kubu (int, dubultā, peldēt), izmantojot to pašu metodi.

Parasti, lai definētu līdzīgas metodes ar dažādiem parametru tipiem, tiek izmantota metožu pārslodze.

Kas ir svarīgāka par metodi?

Tas attiecas uz atšķirīgu metodes ieviešanu apakšklasē. Metodei jābūt jau definētai vecāku klasē.

Galvenajai metodei (t. I., Apakšklasē esošajai) jābūt ar tādu pašu metodes parakstu kā virsklasē. Svarīgākās metodes atgriešanās veids var būt tāds pats kā virsklase vai tā apakštips.

Pārsvaru parasti izmanto, lai iekļautu objekta uzvedības specifisku ieviešanu apakšklasē.

klases konts {
public void message () {
System.out.println ("
Paldies, ka atvērāt kontu pie mums! ");
}
public static void main (String args []) {
Konts myAccount = jauns konts ();
Uzkrājumi mySavings = jauni ietaupījumi ();
FixedDeposit myFixedDepo = jauns FixedDeposit ();
myAccount.message ();
mySavings.message ();
myFixedDepo.message ();
}
}
klases Uzkrājumi paplašina kontu {
public void message () {
System.out.println ("
Paldies, ka atvērāt krājkontu pie mums! ");
}
}
klase FixedDeposit paplašina kontu {
public void message () {
System.out.println ("
Paldies, ka atvērāt pie mums Fiksētā depozīta kontu! ");
}
}

Izeja:

Paldies, ka atvērāt kontu pie mums!
Paldies, ka atvērāt krājkontu pie mums!
Paldies, ka atvērāt pie mums Fiksētā depozīta kontu!

Iepriekš minētais piemērs parāda, kā metode ziņojums () apakšklasēs tiek ignorēts Uzkrājumi un FixedDeposit. Bankas kontu īpašniekiem ar krājkontu un tiem, kuriem ir fiksētā depozīta konts, tiks parādīti dažādi ziņojumi.

Saistīts: Kas jums jāzina par virkņu izmantošanu Java

Ir arī vērts atzīmēt, ka metodes ignorēšana parāda izpildlaika polimorfismu vai dinamiskas metodes izplatīšanu. Tas nozīmē, ka izsaucamā metode tiek atrisināta izpildes laikā, nevis kompilācijā.

Lai izvairītos no metodes ignorēšanas, izmantojiet atslēgvārdu galīgais.

final void message () {
System.out.println ("
Paldies, ka atvērāt kontu pie mums! ");
}

Kad apakšklase mēģina to ignorēt, rodas kompilācijas kļūda.

Ideālā gadījumā visām metodēm, ko izsauc konstruktors, vajadzētu būt galīgais. Tas ir paredzēts, lai izvairītos no neparedzētām izmaiņām, kuras var izraisīt apakšklases.

Dažreiz jums var būt nepieciešams piekļūt ignorētai metodei, izmantojot primāro metodi. Jūs varat izmantot atslēgvārdu super seko punktu operators (.) un metodes nosaukumu šādā gadījumā.

Apsveriet superklasi Dzīvnieks.

klase Dzīvnieks {
public void move () {
System.out.println ("
Es varu pārvietoties. ");
}
}

Zemāk ir apakšklase, saukta Zivis, kas ignorē pārvietot():

klases zivis pagarina dzīvnieku {
public void move () {
System.out.println ("
ES varu peldēt.");
super.kustēties ();
}
public static void main (String args []) {
Zivis Tilapia = jauna zivs ();
Tilapia.move ();
}
}

Izeja:

ES varu peldēt.
Es varu pārvietoties.

Pārvarot metodi, jums jāņem vērā arī izmantotais piekļuves modifikators. Apakšklases pārveidotājam jābūt ar tādu pašu redzamības līmeni vai augstākam nekā bāzes klasē. Piemēram, ja metode bāzes klasē ir definēta kā aizsargāts, tad svarīgākā metode var būt vai nu aizsargāts vai publiski.

Vienkāršs kods ar polimorfismu

Metodes ignorēšana un pārslodze ir svarīga koda vienkāršošanai, un vienkāršs kods ir laba prakse.

Kāpēc? Iedomājieties sarežģītu koda bāzi ar vairākiem ieejām un izejām nekā Grand Central Station. Tagad iedomājieties, ka postoša kļūda sāk iznīcināt jūsu smago darbu jūsu acu priekšā. Jums jāizolē infekcijas avots, un tas jādara ātri.

Lai veicas, jūs nepārvienkāršojāt kodu... Tagad jūs gatavojaties iegūt patiesu kriptogrāfijas mācību. Efektīvu datu struktūru izmantošana un visu iespējamo koda saīsināšana (piemēram, DRY paturēšana prātā) ir vislabākā aizsardzība pret šādu situāciju.

Nākamajā Java mācību sarakstā jāstrādā ar masīviem. Tās ir svarīgas datu struktūras, ko izmanto datu punktu partiju glabāšanai.

E-pasts
Kā izveidot un veikt operācijas ar masīviem Java

Mācāties Java? Ļaujiet masīviem ērti apstrādāt jūsu datus.

Lasiet Tālāk

Saistītās tēmas
  • Programmēšana
  • Java
  • Kodēšanas konsultācijas
Par autoru
Džeroms Deividsons (Publicēti 15 raksti)

Džeroms ir MakeUseOf personāla rakstnieks. Viņš aptver rakstus par programmēšanu un Linux. Viņš ir arī kriptogrāfijas entuziasts un vienmēr tur norādes par kriptogrāfijas nozari.

Vairāk no Džeroma Deividsona

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam par tehniskiem padomiem, atsauksmēm, bezmaksas e-grāmatām un ekskluzīviem piedāvājumiem!

Vēl viens solis !!!

Lūdzu, apstipriniet savu e-pasta adresi e-pastā, kuru tikko nosūtījām.

.