Forskel mellem tilsidesættelse og overbelastning i C #

Nøgleforskel - Overriding vs overbelastning i C #
 

Det vigtigste forskel mellem tilsidesættelse og overbelastning i C # er det bindingen af ​​overstyret metodekald til dens definition sker under kørsel, mens bindingen af ​​overbelastet metodekald til dens definition sker på kompileringstidspunktet.

C # er et generelt programmeringssprog udviklet af Microsoft. Den største fordel ved C # er, at det understøtter Object Oriented Programming (OOP). En søjle i OOP er polymorfisme. Det giver et objekt at have flere adfærd. Der er to typer i polymorfisme, der kaldes tilsidesættelse og overbelastning. Denne artikel diskuterer forskellen mellem metodeoverskridelse og overbelastning i C #.

INDHOLD

1. Oversigt og nøgleforskel
2. Hvad overstyres i C #
3. Hvad er overbelastning i C #
4. Ligheder mellem tilsidesættelse og overbelastning i C #
5. Sammenligning side ved side - Overriding vs overbelastning i C # i tabelform
6. Resume

Hvad overstyres i C #?

Der er hinanden vigtigt begreb i OOP er arv. Det er at bruge attributter og metoder til den allerede eksisterende klasse. Det forbedrer genanvendelse af kode. Den allerede eksisterende klasse er baseklassen, og den nye klasse kaldes den afledte klasse. Ved tilsidesættelse af polymorfisme skal der være en baseklasse og en afledt klasse. Bindingen af ​​den tilsidesatte metodekald til definitionen sker under kørsel. Et eksempel er som følger.

Figur 01: C # -program med tilsidesættelse

I henhold til ovenstående program er klassen Shape baseklassen, og den indeholder displaymetoden. Klasse Rektangel og Triangle er afledte klasser. Disse afledte klasser har også den samme metodedisplay med deres egne implementeringer.

Først oprettes referencevariablen obj. Det peger på Shape-objektet. Så visningsmetoden for formklasse udføres. Derefter peger referencevariablen på rektangelobjektet. Så visningsmetoden i rektangelklasse udføres. Endelig peger referencevariablen på trekantobjektet. Så displaymetoden i trekantklasse udføres. Grundlæggende visningsmetode overstyres af visningsmetoderne for de afledte klasser.

Metoden til at køre bestemmes ved kørsel. Formklassen er skrevet med et 'virtuelt' nøgleord. Rektangel- og trekantklasserne er skrevet med et "tilsidesætte" nøgleord. Hvis disse nøgleord ikke bruges, udskriver output indholdet af visningsmetoden i formklasse for alle.

Hvad er overbelastning i C #?

Ved overbelastning har flere metoder det samme navn, men med forskellige parametre. Parametrene kan være af forskellige typer. Metoderne kan også have et andet antal parametre. Overbelastning af metoden forekommer i samme klasse. Bindingen af ​​overbelastede metoder til definitionen sker på kompileringstidspunktet. Se C # -programmet nedenfor.

Figur 02: C # -program med overbelastning

I henhold til ovenstående program har klasse A to metoder med samme navn kaldet summen. De har forskellige typer parametre. I hovedprogrammet oprettes et objekt af A. Summen (2,3) aktiverer summetoden med heltal. Summen (5.1, 7.94) påkalder summetoden med dobbeltværdier. Begge metoder har samme navn og et samme antal parametre. Men parametertyperne er forskellige. Den krævede metode kaldes i overensstemmelse hermed. Overbelastning kan også forekomme, hvis metodenavne og parametertyper er de samme, men antallet af parametre er forskellige.

Hvad er ligheden mellem tilsidesættelse og overbelastning i C #?

  • Både overdrivning og overbelastning i C # er typer af polymorfisme.

Hvad er forskellen mellem tilsidesættelse og overbelastning i C #?

Overriding vs overbelastning i C #

Overstyring i C # er at tilvejebringe en specifik implementering i en afledt klassemetode for en metode, der allerede findes i baseklassen. Overbelastning i C # er at oprette flere metoder med samme navn med forskellige implementeringer.
 Parametre
I C # Overriding har metoderne det samme navn, samme parametertyper og et samme antal parametre. I C # Overloading har metoderne det samme navn men et andet antal parametre eller en anden type parametre.
Hændelse
I C # forekommer overstyring inden for baseklassen og den afledte klasse. I C # forekommer overbelastning inden for samme klasse.
 Bindingstid
Bindingen af ​​den tilsidesatte metodekald til dens definition sker under kørsel. Bindingen af ​​den overbelastede metodekald til dens definition sker på kompileringstidspunktet.
Synonymer
Overstyring kaldes som runtime polymorfisme, dynamisk polymorfisme eller sen binding. Overbelastning kaldes som kompilere tidspolymorfisme, statisk polymorfisme eller tidlig binding.

Resumé - Overriding vs overbelastning i C #

Overriding og overbelastning er to typer af polymorfisme. Forskellen mellem tilsidesættelse og overbelastning i C # er, at bindingen af ​​den tilsidesatte metodekald til dens definition sker under kørsel, mens bindingen af ​​den overbelastede metodekald til dens definition sker på kompileringstidspunktet.

Reference:

1.Kumar, Mukesh. C # Hjørne. Tilgængelig her
2.tutorialspoint.com. “C # polymorfisme.” TutorialsPointTilgængelig her
3.tutorialspoint.com. “C # Datatyper.” TutorialsPoint, tilgængelig her