Erinevus ülekoormamise ja alistamise vahel

Enne kui süveneda erinevustesse ülekoormamise ja ülekaalu vahel, peame mõistma, millised need tegelikult on ja stsenaariumid, milles neid eriti kasutatakse? Java uustulnukad lähevad nende kahe vahel sageli segadusse, kuid nad on üksteisest täiesti erinevad ja neid kasutatakse nende konkreetsetes stsenaariumides. Meetodi ülekoormamine toimub siis, kui meil on mitu sama nimega, kuid erinevate allkirjadega meetodit. Allkirjad sisaldavad meetodi parameetrite arvu, parameetrite andmetüüpi. Allkirjas ei sisaldu tagastamise tüüpi meetod. Seda tehakse sama meetodi nime taaskasutamise funktsiooni tagamiseks ja programmide loetavuse suurendamiseks. Meetodi alistamine toimub pärimise korral, kus tuletatud klass pärib omadused põhiklassist. See hõlmab sama põhiklassi meetodi määratlemist tuletatud klassis sama parameetri ja tagasitüübiga, et määratleda selle meetodi mis tahes spetsiifiline funktsionaalsus / rakendamine tuletatud klassis.

Mõelge stsenaariumile, kus programmeerija peab leidma geomeetrilise kujundi ala. Iga figuuri pindala on üksteisest erinev. Näiteks ruudu pindala leidmiseks on vaja ainult ühte parameetrit “külg”, ristküliku jaoks on vaja kahte parameetrit “pikkus ja laius”, ringi jaoks aga “raadiust”, mis võib olla kümnendkoht. Selle eesmärgi saavutamiseks tehakse meetodiga ülekoormamine, kus meetodi piirkonnas on erinevad parameetrid ja andmetüüp erinevate joonistega ala jaoks. Mõelge pangandussüsteemi olukorrale, ehkki mitmed meetodid ja protseduurid on kõigi töötajate jaoks ühesugused, välja arvatud mõned, näiteks tava- ja vanuritele mõeldud intressimäärad on erinevad. Sel juhul kasutatakse meetodit Overriding, mille korral rakendatakse meetodi Intressimäärad erinevat rakendamist nii tava- kui ka pensionäride klassis, mis pärib põhiklassi „Pangaintressid”.

Ülemkoormuse ja ülekaalu võrdlus (infograafika)

Allpool on seitse parimat ülekoormuse ja ülekaalu võrdlust :

Peamised erinevused ülekoormamise ja alistamise vahel

Arutleme mõne peamise peamise erinevuse ülekoormamise ja alistamise vahel:

  1. Meetodi ülekoormamise korral võivad meetodid omada meetodi nimetuses samu või erinevaid juurdepääsu spetsifikatsioone / modifikaatoreid, samas kui meetodi põhiasja meetodi ületamise meetodil (ülepakutud meetod) peab olema piiratud juurdepääsu spetsifikaator kui vanema klassi meetodil. Näiteks kui põhiklassi meetod on kaitstud, pole lapsmeetod privaatne lubatud.
  2. Kui võrrelda jõudlust, siis ülekoormamisel on parem jõudlus võrreldes ülekaaluga, kuna meetodi ülekoormamine toimub kompileerimise ajal.
  3. Meetodi tagastamise tüüp ei ole kunagi meetodi osa. Ülekoormamine, seetõttu pole vahet, kas erinevatel ülekoormatud meetoditel on sama või erinev tagastamise tüüp, samas kui meetodi Ülem- ja ületähtsustav tüüp puhul peavad nii lähte- kui ka põhiklassi meetodid olema täpselt samad. .
  4. Köitmisest rääkides on ülekoormamisel staatiline sidumine, samas kui Üleslaadimisel on dünaamiline sidumine.
  5. Meetodi abil visandatud erandil pole ülekoormatud meetodi puhul tähtsust, kui üks meetod viskab erandi, teised ülekoormatud meetodid võivad / ei saa sama või erinevat erandit visata, kuid alistamise korral ei saa alistav meetod (meetod tuletatud klassis) visata kõrgema hierarhia erandit kui ülepakutud meetod (meetod põhiklassis).
  6. Kõiki spetsifikaate, nagu privaatset, lõplikku ja staatilist, ei saa meetodis Üldamine kasutada, samas kui meetodi ülekoormamisel on lubatud kõik juurdepääsu spetsifikatsioonid.

Ülekoormuse ja ülekaalu võrdlustabel

Allolev tabel võtab kokku ülekoormuse ja ülekaalu võrdlused:

S.N. Ülekoormamine Ülimuslik
1Meetodite ülekoormamine toimub meetodite täpsemaks määratlemiseks vastavalt erinevatele olukordadele.Meetodi alistamine toimub selleks, et pakkuda põhiklassis määratletud meetodite konkreetset rakendamist.
2Meetodi ülekoormamine toimub ühes klassis, kus ühel klassil on meetodi erinevad määratlused.Meetodi alistamine toimub kahe klassi vahel, mille vahel on IS-A (pärand) suhe.
3Meetod Ülekoormamine toimub kompileerimise ajal ja seetõttu nimetatakse seda kompileerimisaja polümorfismiks.Meetodi alistamine toimub käitusel ja seetõttu nimetatakse seda käitusaja polümorfismiks.
4Parameetrite järjestamine, andmetüüp ja parameetrite arv peavad meetodi ülekoormamise korral erinema.Parameetri järjekord, andmetüüp ja arv peavad meetodi alistamise korral olema samad.
5Meetodi tagastamise tüüp võib meetodi ülekoormamise korral olla sama või erinev. See pole üldse oluline.Meetodi tagastamise tüüp peab meetodi alistamise korral olema sama nii vanema kui ka lapse klassis.
6Staatilisi meetodeid saab üle koormata, st samas klassis võivad olla erinevad staatilised meetodid.Staatilisi meetodeid ei saa kunagi alistada, st vanemklassi ja põhiklassi staatilisel meetodil pole nende vahel mingit seost.
7Privaat- ja lõpumeetodeid saab klassis üle koormata, st klassis võib olla ülekoormatud rohkem kui 1 privaatne ja lõplik meetod.Lasteklassis ei saa kunagi mööda minna privaatsetest ja lõplikest meetoditest.

Näide meetodi ülekoormamise kohta:

class FIgures(
public int area(int side)
(
return side*side;
)
public int area(int length, int breadth) //method overloading
(
return length*breadth;
)
public static void main(String() args)
(
Figures f = new Figures ();
System.out.println(“Area of Square “+ f.area(10));
System.out.println(“Area of Rectangle “+ f.area(12, 10));
)
)

Väljund:

Väljaku 100 pindala
Ristküliku pindala 120

Ülaltoodud näites on meetod 'area ()' ülekoormatud ja selle mõlemal ülekoormatud meetodil on erinevad parameetrid. Kuna ala tuleb välja selgitada nii ruudu kui ka ristküliku jaoks, kuid erinevate parameetritega.

Näide meetodi ülimusest:

class BankRates( // parent(base) class
void rates()
(
System.out.println(“Rates for normal citizen is 3.5%”);
)
)
class SeniorCItizen extends BankRates( //child class inheriting parent class
void rates() // method overriding
(
System.out.println(“Rates for senior citizens is 4.5%”);
)
)
class Bank(
public static void main(String() args)
(
SeniorCItizen sc = new BankRates(); sc.rates();
)
)

Väljund:

Hinnad eakatele on 4, 5%

Ülaltoodud näites on meetod 'rate ()' tuletatud klassis 'SeniorCitizen' ületatud, kuna me tahame, et meetodi määrad oleks ka klassis SeniorCitizen, kuid teistsuguse teostusega.

Järeldus

Ülaltoodud selgitus näitab selgelt erinevust ülekoormamise ja alistamise ning konkreetsete stsenaariumide vahel, kus neid kahte kasutatakse. Enne programmeerimist tuleb mõista neid Java põhimõisteid, kuna need on paljude asjade aluseks ja aitavad hõlpsamini mõista keerukamaid mõisteid.

Soovitatavad artiklid

See on juhend peamiseks erinevuseks ülekoormamise ja alistamise vahel. Siin käsitleme ka infograafikutega ülekoormamist vs peamisi erinevusi ja võrdlustabelit. Võite lisateabe saamiseks vaadata ka järgmisi artikleid -

  1. Funktsionaalne programmeerimine vs OOP
  2. Mis on JavaScriptis ülimuslik?
  3. Kuidas ülekoormamine töötab PHP-s?
  4. Ülevaade ülekoormamisest C # -s
  5. Ülekaalus Java
  6. Pythoni ülekoormamine
  7. C-numbri ülekoormamine ja alistamine

Kategooria: