Nøgleforskel - Overstyring vs Overbelastning i C #
Hovedforskellen mellem tilsidesættelse og overbelastning i C # er, at binding af tilsidesat metodeopkald til dens definition sker ved kørsel, mens binding af overbelastet metodeopkald til dets definition sker på kompileringstidspunktet.
C # er et generelt programmeringssprog udviklet af Microsoft. Den største fordel ved C # er, at den 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 kendt som tilsidesættelse og overbelastning. Denne artikel diskuterer forskellen mellem metodeoverstyring og overbelastning i C #.
INDHOLD
1. Oversigt og nøgleforskel
2. Hvad er overstyring i C #
3. Hvad er overbelastning i C #
4. Ligheder mellem overstyring og overbelastning i C #
5. Sammenligning side om side - Overstyring versus overbelastning i C # i tabelform
6. Resumé
Hvad er tilsidesættelse i C #?
Der er hinanden vigtigt begreb i OOP er arv. Det er at bruge attributter og metoder fra den allerede eksisterende klasse. Det forbedrer genanvendelighed af kode. Den allerede eksisterende klasse er basisklassen, og den nye klasse er kendt som den afledte klasse. Ved tilsidesættelse af polymorfisme bør der være en basisklasse og en afledt klasse. Bindingen af det tilsidesatte metodeopkald til definitionen sker ved kørsel. Et eksempel er som følger.
Figur 01: C # -program med tilsidesættelse
I henhold til ovenstående program er klassen Form baseklassen, og den indeholder visningsmetoden. Klasserektangel og trekant er afledte klasser. Disse afledte klasser har også den samme metodevisning med deres egne implementeringer.
For det første oprettes referencevariablen obj. Det peger på Shape-objektet. Så udførelsesmetoden for Shape-klasse udføres. Derefter peger referencevariablen på rektangelobjektet. Så udførelsesmetoden til rektangelklassen udføres. Endelig peger referencevariablen på trekantsobjektet. Så visningsmetoden i trekantsklassen udføres. Basisklassens displaymetode tilsidesættes af displaymetoderne for de afledte klasser.
Metoden til kørsel bestemmes ved kørselstid. Klassen Form er skrevet med et 'virtuelt' nøgleord. Klasserne rektangel og trekant er skrevet med 'tilsidesættelse' nøgleord. Hvis disse nøgleord ikke bruges, vil output udskrive 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. Metodeoverbelastning forekommer i samme klasse. Bindingen af overbelastede metoder til definitionen sker på kompileringstidspunktet. Se nedenstående C # -program.
Figur 02: C # -program med overbelastning
I henhold til ovenstående program har klasse A to metoder med samme navn kaldet sum. De har forskellige typer parametre. I hovedprogrammet oprettes et objekt af A. Summen (2,3) påberåber summetoden med heltal. Summen (5.1, 7.94) påberåber summetoden med dobbeltværdier. Begge metoder har samme navn og samme antal parametre. Men parametertyperne er forskellige. Den krævede metode kaldes i overensstemmelse hermed. Overbelastning kan også forekomme, hvis metodens navne og parametertyper er ens, men antallet af parametre er forskelligt.
Hvad er ligheden mellem overstyring og overbelastning i C #?
Både Overstyring og Overbelastning i C # er typer af polymorfisme
Hvad er forskellen mellem overstyring og overbelastning i C #?
Diff artikel midt foran bordet
Overstyring vs Overbelastning i C # |
|
Overstyring i C # er at tilvejebringe en specifik implementering i en afledt klassemetode til en metode, der allerede findes i basisklassen. | Overbelastning i C # er at oprette flere metoder med samme navn med forskellige implementeringer. |
Parametre | |
I C # tilsidesættelse har metoderne det samme navn, de samme parametertyper og det samme antal parametre. | I C # Overbelastning har metoderne det samme navn, men et andet antal parametre eller en anden type parametre. |
Hændelse | |
I C # sker tilsidesættelse inden for basisklassen og den afledte klasse. | I C # forekommer overbelastning inden for samme klasse. |
Bindende tid | |
Bindingen af det tilsidesatte metodeopkald til dets definition sker ved kørsel. | Bindingen af det overbelastede metodekald til dets definition sker på kompileringstidspunktet. |
Synonymer | |
Tilsidesættelse kaldes polymorfisme, dynamisk polymorfisme eller sen binding. | Overbelastning kaldes kompileringstidspolymorfisme, statisk polymorfisme eller tidlig binding. |
Resumé - Overstyring vs Overbelastning i C #
Overstyring og overbelastning er to typer polymorfisme. Forskellen mellem tilsidesættelse og overbelastning i C # er, at bindingen af det tilsidesatte metodeopkald til dets definition sker ved kørsel, mens bindingen af det overbelastede metodeopkald til dets definition sker på kompileringstidspunktet.