Belangrijkste verschil - Overschrijven versus overbelasting in C #
Het belangrijkste verschil tussen overschrijven en overbelasten in C # is dat de binding van de overschreven methodeaanroep aan de definitie ervan tijdens runtime plaatsvindt, terwijl de binding van de overbelaste methodeaanroep aan de definitie plaatsvindt tijdens het compileren.
C # is een programmeertaal voor algemene doeleinden die is ontwikkeld door Microsoft. Het belangrijkste voordeel van C # is dat het Object Oriented Programming (OOP) ondersteunt. Een pijler van OOP is polymorfisme. Het geeft een object meerdere gedragingen. Er zijn twee soorten polymorfisme die bekend staan als overbelasting en overbelasting. Dit artikel bespreekt het verschil tussen het overschrijven van methoden en overbelasting in C #.
INHOUD
1. Overzicht en belangrijkste verschil
2. Wat is overschrijven in C #
3. Wat is overbelasting in C #
4. Overeenkomsten tussen overschrijven en overbelasting in C #
5. Vergelijking naast elkaar - Overschrijven versus overbelasting in C # in tabelvorm
6. Samenvatting
Wat is overschrijven in C #?
Er is een ander belangrijk concept in OOP is overerving. Het is om attributen en methoden van de reeds bestaande klasse te gebruiken. Het verbetert de herbruikbaarheid van code. De reeds bestaande klasse is de basisklasse en de nieuwe klasse staat bekend als de afgeleide klasse. Bij het opheffen van polymorfisme moet er een basisklasse en een afgeleide klasse zijn. De binding van de overschreven methodeaanroep aan de definitie gebeurt tijdens runtime. Een voorbeeld is als volgt.
Figuur 01: C # -programma met overschrijving
Volgens het bovenstaande programma is de klasse Shape de basisklasse en bevat deze de weergavemethode. Class Rectangle en Triangle zijn afgeleide klassen. Deze afgeleide klassen hebben ook dezelfde methodeweergave met hun eigen implementaties.
Eerst wordt de referentievariabele obj gemaakt. Het verwijst naar het Shape-object. Dus de weergavemethode van de Shape-klasse wordt uitgevoerd. Vervolgens verwijst de referentievariabele naar het object Rectangle. Dus de weergavemethode van de klasse Rectangle wordt uitgevoerd. Ten slotte verwijst de referentievariabele naar het Triangle-object. Dus de weergavemethode van de Triangle-klasse wordt uitgevoerd. De weergavemethode van de basisklasse wordt overschreven door de weergavemethoden van de afgeleide klassen.
De uit te voeren methode wordt tijdens runtime bepaald. De Shape-klasse is geschreven met een 'virtueel' trefwoord. De klassen Rectangle en Triangle zijn geschreven met het trefwoord 'override'. Als deze sleutelwoorden niet worden gebruikt, zal de uitvoer de inhoud van de weergavemethode van de klasse Shape voor iedereen afdrukken.
Wat is overbelasting in C #?
Bij overbelasting hebben meerdere methoden dezelfde naam maar met verschillende parameters. De parameters kunnen van verschillende typen zijn. De methoden kunnen ook een ander aantal parameters hebben. Overbelasting van de methode vindt plaats in dezelfde klasse. Het binden van overbelaste methoden aan de definitie gebeurt tijdens het compileren. Raadpleeg het onderstaande C # -programma.
Figuur 02: C # -programma met overbelasting
Volgens het bovenstaande programma heeft klasse A twee methoden met dezelfde naam genaamd som. Ze hebben verschillende soorten parameters. In het hoofdprogramma wordt een object van A gemaakt. De som (2,3) roept de som-methode op met gehele getallen. De som (5,1, 7,94) roept de sommethode op met dubbele waarden. Beide methoden hebben dezelfde naam en hetzelfde aantal parameters. Maar de parametertypes zijn verschillend. De vereiste methode wordt dienovereenkomstig aangeroepen. Overbelasting kan ook optreden als de methodenamen en parametertypen hetzelfde zijn, maar het aantal parameters verschilt.
Wat is de overeenkomst tussen overschrijven en overbelasting in C #?
Zowel Overriding als Overloading in C # zijn soorten polymorfisme
Wat is het verschil tussen overschrijven en overbelasting in C #?
Diff Artikel Midden voor Tafel
Overschrijven versus overbelasting in C # |
|
Overschrijven in C # is om een specifieke implementatie te bieden in een afgeleide klassemethode voor een methode die al in de basisklasse bestaat. | Overbelasting in C # is om meerdere methoden met dezelfde naam te maken met verschillende implementaties. |
Parameters | |
In C # Overriding hebben de methoden dezelfde naam, dezelfde parametertypen en hetzelfde aantal parameters. | Bij C # Overloading hebben de methoden dezelfde naam, maar een ander aantal parameters of een ander type parameters. |
Voorval | |
In C # vindt overschrijving plaats binnen de basisklasse en de afgeleide klasse. | In C # treedt overbelasting op binnen dezelfde klasse. |
Bindingstijd | |
De binding van de overschreven methodeaanroep aan zijn definitie gebeurt tijdens runtime. | De binding van de overbelaste methodeaanroep aan zijn definitie vindt plaats tijdens het compileren. |
Synoniemen | |
Overschrijven wordt runtime-polymorfisme, dynamisch polymorfisme of late binding genoemd. | Overbelasting wordt compilatietijdpolymorfisme, statisch polymorfisme of vroege binding genoemd. |
Samenvatting - Overschrijven versus overbelasting in C #
Overschrijven en overbelasting zijn twee soorten polymorfisme. Het verschil tussen overschrijven en overbelasten in C # is dat de binding van de overschreven methodeaanroep aan zijn definitie tijdens runtime plaatsvindt, terwijl de binding van de overbelaste methodeaanroep aan zijn definitie plaatsvindt tijdens het compileren.