Skirtumas tarp viršijimo ir perkrovos

Nepaisymas vs perkrovimas

Metodas „Nepaisymas“ ir „Perkrovimas“ yra dvi sąvokos / būdai / ypatybė, aptinkama kai kuriose programavimo kalbose. Abi sąvokos leidžia programuotojui pateikti skirtingus to paties pavadinimo metodų įgyvendinimus. Metodo pakeitimas leidžia programuotojui suteikti alternatyvų įgyvendinimą pogrupyje metodui, jau apibrėžtam jo superklasėje. Metodo perkrovimas leidžia programuotojui pateikti skirtingus įgyvendinimus keliems metodams tuo pačiu pavadinimu (toje pačioje klasėje)..

Kas yra svarbiausia?

Kaip minėta aukščiau, klasė gali išplėsti super klasę arba pirminę klasę, naudojant objektinio programavimo kalbas. Vaikų klasė gali turėti savo metodus arba pasirinktinai įdiegti metodus, kurie jau yra apibrėžti jos tėvų klasėje (arba vienoje iš pagrindinių tėvų klasių). Taigi, kai pastarasis įvyksta, jis vadinamas metodo viršenybe. Kitaip tariant, jei vaikų klasė pateikia metodo, turinčio tą patį parašą ir grįžimo tipą, metodą, kaip jau apibrėžtą vienoje iš tėvų klasių, tai yra laikoma, kad šis metodas yra pakeistas (pakeistas) įgyvendinant vaiko klasę. . Taigi, jei klasėje yra nepaisomas metodas, vykdomoji sistema turės nuspręsti, kuris metodo įgyvendinimas yra naudojamas. Ši problema išspręsta pažiūrėjus tikslų objekto tipą, kuris naudojamas jam iškviesti. Jei viršesniam metodui iškviesti naudojamas pirminės klasės objektas, tada naudojama pradinėje klasėje esanti priemonė. Panašiai, jei naudojamas vaikų klasės objektas, tada naudojama vaiko klasės įgyvendinimas. Šiuolaikinės programavimo kalbos, tokios kaip Java, Eifell, C ++ ir Python, leidžia pakeisti metodą.

Kas yra perkrova?

Metodo perkrovimas yra funkcija, kurią teikia kai kurios programavimo kalbos, kad būtų sukurtas daugiau nei vienas metodas tuo pačiu pavadinimu, bet su skirtingais įvesties ir išvesties tipais. Šiuolaikinėse programavimo kalbose, tokiose kaip „Java“, C #, C ++ ir VB.NET, ši funkcija yra. Galite perkrauti metodą sukurdami kitą metodą tuo pačiu pavadinimu, bet kitu metodo parašu arba skirtinga grįžimo rūšimi (arba abiem). Pavyzdžiui, jei 1 metodą (1 tipo t1) ir 1 metodą (2 tipo 2 t2) naudojate toje pačioje klasėje, tada jie yra perkrauti. Tada sistema turės nuspręsti, kuri iš jų bus vykdoma, kai ji vadinama. Šis diferencijavimas atliekamas atsižvelgiant į parametro (-ų), perduotų į metodą, tipą. Jei argumentas yra 1 tipo, tada vadinamas pirmasis įgyvendinimas, o jei 2 tipo, tada vadinamas antruoju įgyvendinimu..

Kuo skiriasi viršijimas ir perkrovimas?

Nors metodo pakeitimas ir metodo perkrovimas yra naudojami siekiant pateikti metodą su skirtingais įgyvendinimais, tarp šių dviejų sąvokų / metodų yra esminių skirtumų. Pirmiausia, metodo viršesnieji dalykai visada būna skirtingose ​​klasėse, tuo tarpu metodo perkraunantys dalykai yra toje pačioje klasėje. Tai reiškia, kad nepaisyti galima tik į objektus orientuoto programavimo kalbose, kurios leidžia paveldėti, o perkrovos gali būti prieinamos ir ne objekto orientuota kalba. Kitaip tariant, jūs nepaisote superklasėje esančio metodo, bet apkraunate metodą savo klasėje.

Kitas skirtumas yra tas, kad nepaisomi metodai turi tą patį metodo pavadinimą, metodo parašą ir grąžinimo tipą, tačiau perkrauti metodai turi skirtis tiek parašu, tiek grąžinimo tipu (vardas turėtų būti tas pats). Norint atskirti du nepaisomus metodus, tikslus objekto tipas, kuris naudojamas panaudoti naudojamus metodus, o norint atskirti du perkrautus metodus, naudojami parametrų tipai. Kitas esminis skirtumas yra tas, kad perkrovos išsprendžiamos kompiliavimo metu, o nepaisymas išsprendžiamas vykdymo metu.