Metodo perkrova ir nepaisymas yra du būdai, kuriais Java demonstruoja polimorfizmą. Polimorfizmas kilęs iš dviejų graikiškų žodžių junginio: „poly“, reiškiantis daug ir „morph“, reiškiantis formą. Todėl polimorfizmas leidžia metodams įgyti daugybę formų.

Vykdykite šį vadovą, kad sužinotumėte, kaip perkrauti arba nepaisyti „Java“ metodų.

Kas yra metodo perkrova?

„Metodo perkrova“ reiškia skirtingų metodų apibrėžimą klasėje tuo pačiu pavadinimu. Metodai turi turėti skirtingus parašus. Metodo parašas yra metodo pavadinimo ir parametrų sąrašo derinys. Jame nėra grąžinimo tipo.

Kompiliatorius žino, kurį metodą naudoti, patikrindamas tipą, parametrų skaičių ir jų išdėstymo tvarką.

Susijęs: „Java“ programavimo kalbos paveldėjimo tyrimas

Metodo perkrova rodo kompiliavimo laiko polimorfizmą. Kompiliavimo laiko polimorfizmas reiškia, kad „Java“ kompiliatorius susieja objektą su jo funkcijomis vykdymo metu. Kompiliatorius patikrina metodo parašus, kad tai pasiektų.

Šis polimorfizmo tipas taip pat žinomas kaip statinis arba ankstyvasis surišimas.

instagram viewer

Žr. Metodo perkrovos pavyzdį žemiau:

klasės aritmetika {
int kubas (int x) {
grįžti x * x * x;
}
dvigubas kubas (dvigubas x) {
grįžti x * x * x;
}
plūduriuojantis kubas (plūduriuojantis x) {
grįžti x * x * x;
}
public static void main (String [] argumentuoja) {
Aritmetinė „myMultiplication“ = nauja aritmetika ();
System.out.println ("5 kubas yra" + myMultiplication.cube (5));
System.out.println ("5.0 kubas yra" + myMultiplication.cube (5.0));
System.out.println ("0,5 kubas yra" + myMultiplication.cube (0,5));
}
}

Išvestis:

5 kubas yra 125
5,0 kubas yra 125,0
0,5 kubas yra 0,125

Aukščiau pateiktas kodas rodo, kaip galite gauti skirtingų tipų kubą (tarpt, dvigubai, plūdė) naudojant tą patį metodą.

Paprastai metodo perkrova naudojama apibrėžti panašius metodus su skirtingais parametrų tipais.

Kas yra svarbesnis metodas?

Tai reiškia skirtingą metodo įgyvendinimą poklasyje. Metodas jau turi būti apibrėžtas tėvų klasėje.

Pagrindinis metodas (t. Y. Poklasyje esantis) turi turėti tą patį metodo parašą kaip ir superklase. Svarbiausio metodo grąžinimo tipas gali būti tas pats arba viršklasio tipo potipis.

Nepaisymas paprastai naudojamas norint įtraukti konkretų objekto elgesio įgyvendinimą poklasyje.

klasės paskyra {
viešas niekinis pranešimas () {
System.out.println ("
Dėkojame, kad atidarėte sąskaitą pas mus! ");
}
public static void main (String args []) {
Paskyra myAccount = nauja paskyra ();
Taupymas mySavings = naujas taupymas ();
FixedDeposit myFixedDepo = new FixedDeposit ();
myAccount.message ();
mySavings.message ();
myFixedDepo.message ();
}
}
klasės taupymas pratęsia sąskaitą {
viešas niekinis pranešimas () {
System.out.println ("
Dėkojame, kad atidarėte pas mus taupomąją sąskaitą! ");
}
}
„FixedDeposit“ klasė pratęsia paskyrą {
viešas niekinis pranešimas () {
System.out.println ("
Ačiū, kad atidarėte pas mus fiksuoto indėlio sąskaitą! ");
}
}

Išvestis:

Dėkojame, kad atidarėte sąskaitą pas mus!
Dėkojame, kad atidarėte taupomąją sąskaitą pas mus!
Dėkojame, kad atidarėte fiksuoto indėlio sąskaitą pas mus!

Aukščiau pateiktame pavyzdyje parodyta, kaip metodas žinutė () yra pakeista poklasiuose Taupymas ir Fiksuoto dydžio įnašas. Banko sąskaitos turėtojams, turintiems taupomąją sąskaitą, ir tiems, kurie turi fiksuoto indėlio sąskaitą, bus rodomi skirtingi pranešimai.

Susijęs: Ką reikia žinoti apie eilučių naudojimą „Java“

Taip pat verta paminėti, kad svarbesnis metodas rodo vykdymo laiko polimorfizmą ar dinamišką metodų perdavimą. Tai reiškia, kad vadinamas metodas yra išspręstas vykdymo metu, o ne kompiliuojant.

Norėdami išvengti metodo nepaisymo, naudokite raktinį žodį galutinis.

galutinis negaliojantis pranešimas () {
System.out.println ("
Dėkojame, kad atidarėte sąskaitą pas mus! ");
}

Kai poklasis bandys jį nepaisyti, atsiras kompiliavimo klaida.

Geriausia, jei visi konstruktoriaus vadinami metodai turėtų būti galutinis. Taip siekiama išvengti bet kokių nenumatytų pokyčių, kuriuos gali sukelti poklasiai.

Kartais jums gali tekti pasiekti nepaisomą metodą, esantį svarbesniame. Galite naudoti raktinį žodį super po to taško operatorius (.) ir tokiu atveju metodo pavadinimą.

Apsvarstykite superklasę Gyvūnas.

klasės gyvūnas {
viešas niekinis žingsnis () {
System.out.println ("
Aš galiu judėti. ");
}
}

Žemiau yra poklasis, vadinamas Žuvis, tai nepaiso perkelti ():

klasės žuvis pratęsia gyvūną {
viešas niekinis žingsnis () {
System.out.println ("
Aš moku plaukti.");
super.juda ();
}
public static void main (String args []) {
Žuvis Tilapija = nauja žuvis ();
Tilapija.move ();
}
}

Išvestis:

Aš moku plaukti.
Aš galiu judėti.

Nepaisydami metodo, taip pat turite nepamiršti naudojamo prieigos modifikatoriaus. Poklasio modifikatoriaus matomumo lygis turėtų būti toks pats arba didesnis nei bazinės klasės. Pvz., Jei bazinės klasės metodas apibrėžtas kaip saugomi, tada svarbiausias metodas gali būti arba saugomi arba visuomenės.

Paprastas kodas su polimorfizmu

Metodo nepaisymas ir perkrova yra svarbūs norint supaprastinti kodą, o paprastas kodas yra gera praktika.

Kodėl? Įsivaizduokite sudėtingą kodų bazę, kurioje yra daugiau įvarčių ir išėjimų, nei Grand Central Station. Dabar įsivaizduokite, kad pražūtinga klaida prieš jūsų akis pradeda sunaikinti jūsų sunkų darbą. Turite išskirti infekcijos šaltinį ir tai padaryti greitai.

Sėkmės, jūs nesupaprastinote savo kodo... Dabar jūs ruošiatės gauti tikrą kriptografijos pamoką. Geriausia apsauga nuo tokios situacijos yra efektyvių duomenų struktūrų naudojimas ir visko, kas įmanoma, norint sutrumpinti kodą (pvz., DRY turėjimas omenyje).

Toliau jūsų „Java“ mokymosi sąraše turėtų būti darbas su masyvais. Jie yra svarbios duomenų struktūros, naudojamos duomenų taškų partijoms laikyti.

El
Kaip sukurti ir atlikti „Java“ masyvų operacijas

Mokotės „Java“? Leiskite masyvams lengvai tvarkyti jūsų duomenis.

Skaitykite toliau

Susijusios temos
  • Programavimas
  • „Java“
  • Kodavimo vadovėliai
Apie autorių
Jerome'as Davidsonas (Paskelbta 15 straipsnių)

Jeronimas yra „MakeUseOf“ personalo rašytojas. Jis pateikia straipsnius apie programavimą ir „Linux“. Jis taip pat yra kripto entuziastas ir visada saugo skirtukus kripto pramonei.

Daugiau iš Jerome'o Davidsono

Prenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kuriame rasite techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!

Dar vienas žingsnis…!

Prašome patvirtinti savo el. Pašto adresą el. Laiške, kurį jums ką tik išsiuntėme.

.