Forskjell mellom overstyring og overbelastning

Anonim

Overstyring mot overbelastning

Metoden Overstyring og metode Overbelastning er to konsepter / teknikker / funksjonen som finnes i noen programmeringsspråk. Begge konseptene tillater programmerer å gi forskjellige implementeringer for metoder med samme navn. Metode overstyring tillater programmerer å gi en alternativ implementering i en underklasse til en metode som allerede er definert i sin superklasse. Metodeoverbelastning tillater programmerer å gi forskjellige implementeringer til flere metoder med samme navn (innenfor samme klasse).

Hva er Overstyring?

Som nevnt ovenfor kan en klasse forlenge en superklasse eller en overordnet klasse, i objektorienterte programmeringsspråk. En barneklasse kan ha egne metoder eller kan eventuelt ha egne implementeringer til metoder som allerede er definert i sin overordnede klasse (eller en av sine overordnede foreldreklasser). Så når sistnevnte skjer, kalles det overordnet metode. Med andre ord, hvis barneklassen gir en implementering til en metode med samme signatur og returtype som en metode som allerede er definert i en av sine foreldreklasser, sies denne metoden å være overstyrt (erstattet) ved gjennomføringen av barneklassen. Så, hvis det er en overstyrt metode i en klasse, må runtime-systemet avgjøre hvilken metodeimplementering som brukes. Dette problemet er løst ved å se på den eksakte typen objekt som brukes til å påkalle den. Hvis et objekt av foreldreklassen brukes til å påberope den overstyrte metoden, blir implementeringen i foreldreklassen brukt. På samme måte, hvis det er et objekt av barneklassen som brukes, blir barneklassens implementering brukt. Moderne programmeringsspråk som Java, Eifell, C ++ og Python tillater overstyring av metoden.

Hva er Overbelastning?

Overbelastning av metoden er en funksjon levert av noen programmeringsspråk for å lage mer enn én metode med samme navn, men med forskjellige inngangs- og utgangstyper. I moderne programmeringsspråk som Java, C #, C ++ og VB. NET, denne funksjonen er tilgjengelig. Du kan overbelaste en metode ved å opprette en annen metode med samme navn, men med en annen metode signatur eller en annen returtype (eller begge). Hvis du for eksempel har metode1 (type1 t1) og metode1 (type2 t2) inne i samme klasse, blir de overbelastet. Da må systemet avgjøre hvilket som skal utføres når det kalles. Denne differensieringen er gjort ved å se på typen av parameteren (e) som er sendt inn i metoden. Hvis argumentet er av type1, kalles den første implementeringen, mens hvis den er av type2, så kalles den andre implementeringen.

Hva er forskjellen mellom Overstyring og Overbelastning?

Selv om metodeoverstyring og metodeoverbelastning brukes til å gi en metode med forskjellige implementeringer, er det viktige forskjeller mellom disse to konseptene / teknikkene. Først av alt forblir emner av overordnet metode alltid innenfor ulike klasser, mens emner for overbelastning av metode forblir innenfor samme klasse. Det betyr at overstyring bare er mulig i objektorienterte programmeringsspråk som tillater arv, mens overbelastning kan være tilgjengelig i et ikke-objektorientert språk også. Med andre ord overstyrer du en metode i superklassen, men du overbelaster en metode i din egen klasse.

En annen forskjell er at overstyrte metoder har samme metodenavn, metode signatur og returtype, men overbelastede metoder må variere i signatur eller returtype (navnet skal være det samme). For å skille mellom to overstyrte metoder, brukes den nøyaktige typen objekt som brukes til å påberope metodene som brukes, mens å skille mellom to overbelastede metoder, brukes parametertypene. En annen viktig forskjell er at overbelastning er løst på kompileringstid, mens overstyring er løst ved kjøring.