Dallimi midis mbivendosjes dhe mbingarkesës

Dallimi midis mbivendosjes dhe mbingarkesës
Dallimi midis mbivendosjes dhe mbingarkesës

Video: Dallimi midis mbivendosjes dhe mbingarkesës

Video: Dallimi midis mbivendosjes dhe mbingarkesës
Video: Incredibly Beautiful Tour of Positano, Italy - 4K60fps with Captions 2024, Nëntor
Anonim

Mbindje kundrejt mbingarkesës

Metoda Overriding dhe metoda Overloading janë dy koncepte/teknika/veçori që gjenden në disa gjuhë programimi. Të dy konceptet lejojnë programuesin të sigurojë implementime të ndryshme për metodat me të njëjtin emër. Mbështetja e metodës lejon programuesin të sigurojë një zbatim alternativ brenda një nënklase ndaj një metode të përcaktuar tashmë brenda klasës së saj super. Mbingarkimi i metodës lejon programuesin të sigurojë implementime të ndryshme për metoda të shumta me të njëjtin emër (brenda të njëjtës klasë).

Çfarë është mbizotëruese?

Siç u përmend më lart, një klasë mund të zgjerojë një klasë super ose një klasë prind, në gjuhët e programimit të orientuara nga objekti. Një klasë fëmijë mund të ketë metodat e veta ose opsionalisht mund të ketë implementimet e veta për metodat e përcaktuara tashmë në klasën e saj prind (ose një nga klasat e saj të mëdha prind). Pra, kur ndodh kjo e fundit, quhet metoda mbizotëruese. Me fjalë të tjera, nëse klasa fëmijë ofron një zbatim për një metodë me të njëjtin nënshkrim dhe lloj kthimi si një metodë e përcaktuar tashmë në një nga klasat e saj mëmë, ajo metodë thuhet se është anashkaluar (zëvendësuar) nga zbatimi i klasës fëmijë. Pra, nëse ka një metodë të anashkaluar në një klasë, sistemi i kohës së funksionimit do të duhet të vendosë se cila metodë do të përdoret. Ky problem zgjidhet duke parë llojin e saktë të objektit që përdoret për ta thirrur atë. Nëse një objekt i klasës prind përdoret për të thirrur metodën e tejkaluar, atëherë përdoret zbatimi në klasën prind. Në mënyrë të ngjashme, nëse përdoret një objekt i klasës fëmijë, atëherë përdoret zbatimi i klasës fëmijë. Gjuhët moderne të programimit si Java, Eifell, C++ dhe Python lejojnë tejkalimin e metodës.

Çfarë është Mbingarkesa?

Mbingarkesa e metodës është një veçori e ofruar nga disa gjuhë programimi për të krijuar më shumë se një metodë me të njëjtin emër, por me lloje të ndryshme hyrje dhe dalje. Në gjuhët moderne të programimit si Java, C, C++ dhe VB. NET, kjo veçori është e disponueshme. Mund të mbingarkoni një metodë duke krijuar një metodë tjetër me të njëjtin emër, por me një nënshkrim të metodës së ndryshme ose një lloj tjetër kthimi (ose të dyja). Për shembull, nëse keni metodën1 (lloji 1 t1) dhe metodën1 (lloji 2 t2) brenda së njëjtës klasë, atëherë ato janë të mbingarkuara. Pastaj sistemi do të duhet të vendosë se cili do të ekzekutohet kur të thirret. Ky diferencim bëhet duke parë llojin e parametrit(ve) të kaluar në metodë. Nëse argumenti është i tipit 1, atëherë thirret zbatimi i parë, ndërsa nëse është i tipit 2, atëherë thirret zbatimi i dytë.

Cili është ndryshimi midis Mbivendosjes dhe Mbingarkimit?

Megjithëse, tejkalimi i metodës dhe mbingarkesa e metodës përdoren për të ofruar një metodë me implementime të ndryshme, ekzistojnë dallime kryesore midis këtyre dy koncepteve/teknikave. Para së gjithash, lëndët e mbingarkimit të metodës qëndrojnë gjithmonë brenda klasave të ndryshme, ndërsa lëndët e mbingarkimit të metodës qëndrojnë brenda të njëjtës klasë. Kjo do të thotë se mbivendosja është e mundur vetëm në gjuhët e programimit të orientuara nga objekti që lejon trashëgiminë, ndërsa mbingarkesa mund të jetë e disponueshme edhe në një gjuhë jo të orientuar nga objekti. Me fjalë të tjera, ju anashkaloni një metodë në klasën super, por mbingarkoni një metodë brenda klasës tuaj.

Një ndryshim tjetër është se metodat e anashkaluara kanë të njëjtin emër të metodës, nënshkrimin e metodës dhe llojin e kthimit, por metodat e mbingarkuara duhet të ndryshojnë ose në nënshkrimin ose në llojin e kthimit (emri duhet të jetë i njëjtë). Për të bërë dallimin midis dy metodave të mbingarkuara, lloji i saktë i objektit që përdoret për të thirrur metodat id të përdorura, ndërsa për të dalluar midis dy metodave të mbingarkuara përdoren llojet e parametrave. Një tjetër ndryshim kryesor është se mbingarkesa zgjidhet në kohën e përpilimit, ndërsa mbingarkesa zgjidhet në kohën e ekzekutimit.

Recommended: