Erinevus ületamise Ja ülekoormamise Vahel

Erinevus ületamise Ja ülekoormamise Vahel
Erinevus ületamise Ja ülekoormamise Vahel

Video: Erinevus ületamise Ja ülekoormamise Vahel

Video: Erinevus ületamise Ja ülekoormamise Vahel
Video: Порог на балкон (из кафеля) 2024, Aprill
Anonim

Ülimuslik vs ülekoormus

Meetodi ülekandmine ja meetodi ülekoormamine on mõnes programmeerimiskeeles leitud kaks mõistet / tehnikat / omadust. Mõlemad mõisted võimaldavad programmeerijal pakkuda sama nimega meetodite jaoks erinevaid rakendusi. Meetodi eiramine võimaldab programmeerijal pakkuda alamklassis alternatiivset rakendust meetodile, mis on selle superklassis juba määratletud. Meetodite ülekoormamine võimaldab programmeerijal pakkuda mitmele sama nimega meetodile (samas klassis) erinevaid rakendusi.

Mis on ülimuslik?

Nagu eespool mainitud, võib klass laiendada superklassi või vanemklassi objektorienteeritud programmeerimiskeeltes. Lapseklassil võivad olla oma meetodid või valikuliselt oma rakendused meetoditele, mis on juba määratletud tema vanemklassis (või mõnes vanemklassis). Nii et kui viimane juhtub, nimetatakse seda meetodi ülimuslikuks. Teisisõnu, kui lapseklass pakub meetodi, millel on sama allkiri ja tagastustüüp, nagu meetod, mis on juba määratletud ühes selle vanematest klassidest, öeldakse, et see asendatakse (asendatakse) lapseklassi rakendamisega. Seega, kui klassis on alistatud meetod, peab käitussüsteem otsustama, millist meetodi juurutamist kasutatakse. See probleem on lahendatud, kui uuritakse objekti tüüpi, mida selle käivitamiseks kasutatakse. Kui alistatud meetodi esilekutsumiseks kasutatakse vanemklassi objekti, kasutatakse vanemklassi rakendust. Samamoodi, kui see on lapseklassi objekt, mida kasutatakse, siis kasutatakse lasteklassi rakendust. Kaasaegsed programmeerimiskeeled, nagu Java, Eifell, C ++ ja Python, võimaldavad meetodi tühistamist.

Mis on ülekoormus?

Meetodi ülekoormamine on funktsioon, mida pakuvad mõned programmeerimiskeeled, et luua rohkem kui üks sama nimega, kuid erinevate sisend- ja väljundtüüpidega meetod. Tänapäevastes programmeerimiskeeltes nagu Java, C #, C ++ ja VB. NET on see funktsioon saadaval. Meetodit saate üle koormata, luues teise sama nimega meetodi, millel on erinev meetodi allkiri või erinev tagastustüüp (või mõlemad). Näiteks kui teil on sama klassi sees meetod1 (tüüp1 t1) ja meetod1 (tüüp2 t2), siis on need ülekoormatud. Siis peab süsteem otsustama, milline neist käivitada, kui see kutsutakse. See eristamine toimub meetodile edastatud parameetrite tüübi vaatamise kaudu. Kui argument on tüüp1, siis kutsutakse esimest rakendust, kui aga tüüpi 2, siis teist rakendust.

Mis vahe on ülekaalul ja ülekoormusel?

Ehkki meetodi ülekandmist ja meetodi ülekoormamist kasutatakse meetodi pakkumiseks erinevate rakendustega, on nende kahe kontseptsiooni / tehnika vahel peamisi erinevusi. Esiteks jäävad meetodi ülimuslikkuse ained alati erinevatesse klassidesse, samas kui meetodi ülekoormamise ained jäävad samasse klassi. See tähendab, et ülekandmine on võimalik ainult pärandit võimaldavates objektorienteeritud programmeerimiskeeltes, samas kui ülekoormus võib olla saadaval ka mitte-objektorienteeritud keeles. Teisisõnu, alistate meetodi superklassis, kuid koormate meetodit üle oma klassis.

Teine erinevus on see, et tühistatud meetoditel on sama meetodi nimi, meetodi allkiri ja tagastustüüp, kuid ülekoormatud meetodid peavad erinema kas allkirja või tagastuse tüübi poolest (nimi peaks olema sama). Kahe tühistatud meetodi eristamiseks kasutatakse täpse objekti tüüpi, mida kasutatakse kasutatud meetodite id käivitamiseks, kahe ülekoormatud meetodi eristamiseks aga parameetrite tüüpe. Teine oluline erinevus on see, et ülekoormus lahendatakse kompileerimise ajal, samal ajal kui ületamine lahendatakse käituse ajal.

Soovitatav: