De belangrijk verschil tussen overbelasting en overbelasting in C # is dat de binding van de overschreven methodeaanroep tot de definitie ervan gebeurt tijdens runtime, terwijl de binding van de overbelaste methode aanroep tot de definitie plaatsvindt tijdens compilatie.
C # is een programmeertaal voor algemene doeleinden ontwikkeld door Microsoft. Het grote voordeel van C # is dat het Object Oriented Programming (OOP) ondersteunt. Een pijler van OOP is polymorfisme. Het geeft een object om meerdere gedragingen te hebben. Er zijn twee soorten polymorfisme die bekend staan als overriding en overloading. Dit artikel bespreekt het verschil tussen methodeoverschrijving en overbelasting in C #.
1. Overzicht en belangrijkste verschil
2. Wat is opheffen in C #
3. Wat is overbelasting in C #
4. Overeenkomsten tussen overriding en overbelasting in C #
5. Vergelijking zij aan zij - Overschrijven versus overbelasting in C # in tabelvorm
6. Samenvatting
Er is een ander belangrijk concept in OOP is inheritance. Het is om attributen en methoden van de reeds bestaande klasse te gebruiken. Het verbetert de code-herbruikbaarheid. De reeds bestaande klasse is de basisklasse en de nieuwe klasse staat bekend als de afgeleide klasse. Bij het overheersen van polymorfisme, zou er een basisklasse en een afgeleide klasse moeten zijn. De binding van de overschreven methode aanroepen tot de definitie gebeurt tijdens runtime. Een voorbeeld is als volgt.
Figuur 01: C # Programma met overschrijven
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 methode-weergave met hun eigen implementaties.
Eerst wordt de referentievariabele obj gemaakt. Het verwijst naar het Shape-object. Dus de weergavemethode van de klasse Shape wordt uitgevoerd. Vervolgens verwijst de verwijzingsvariabele naar het object Rectangle. Dus de weergavemethode van de klasse Rectangle wordt uitgevoerd. Ten slotte verwijst de verwijzingsvariabele naar het Triangle-object. Dus de weergavemethode van de Triangle-klasse wordt uitgevoerd. De weergave-methode van de basisklasse wordt opgeheven door de weergavemethoden van de afgeleide klassen.
De methode die moet worden uitgevoerd, wordt tijdens runtime bepaald. De Shape-klasse is geschreven met 'virtueel' trefwoord. De klassen Rectangle en Triangle zijn geschreven met een 'override'-sleutelwoord. Als deze sleutelwoorden niet worden gebruikt, zal de uitvoer de inhoud van de weergavemethode Shape-klasse voor iedereen afdrukken.
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. De binding van overbelaste methoden aan de definitie vindt plaats 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 die sum wordt genoemd. Ze hebben verschillende soorten parameters. In het hoofdprogramma wordt een object van A gemaakt. De som (2,3) zal de sommethode aanroepen met gehele getallen. De som (5.1, 7.94) zal de sommethode met dubbele waarden oproepen. Beide methoden hebben dezelfde naam en hetzelfde aantal parameters. Maar de parametertypen zijn verschillend. De vereiste methode wordt overeenkomstig genoemd. Overbelasting kan ook optreden als de methodamen en parametertypen hetzelfde zijn, maar het aantal parameters anders is.
Overschrijven versus overbelasting in C # | |
Overschrijven in C # is het bieden van een specifieke implementatie in een afgeleide klassenmethode voor een methode die al bestaat in de basisklasse. | Overbelasting in C # is om meerdere methoden met dezelfde naam te maken met verschillende implementaties. |
parameters | |
In C # Overbruggen 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 overschrijven plaats in de basisklasse en de afgeleide klasse. | In C # vindt overbelasting plaats binnen dezelfde klasse. |
Bindende tijd | |
De binding van de overschreven methode aanroepen tot de definitie ervan gebeurt tijdens runtime. | De binding van de overbelaste methode aanroep tot de definitie ervan gebeurt tijdens het compileren. |
Synoniemen | |
Overschrijven wordt genoemd als runtime-polymorfisme, dynamisch polymorfisme of late binding. | Overbelasting wordt genoemd als compileer tijd polymorfisme, statisch polymorfisme of vroege binding. |
Overriding en Overloading zijn twee soorten polymorfisme. Het verschil tussen overriding en overbelasting in C # is dat de binding van de overschreven methode aanroep tot de definitie plaatsvindt tijdens runtime, terwijl de binding van de overbelaste methode aanroep tot de definitie plaatsvindt tijdens het compileren.
1. Kumar, Mukesh. C # hoek. Beschikbaar Hier
2.tutorialspoint.com. "C # polymorfisme." TutorialsPoint. Beschikbaar Hier
3.tutorialspoint.com. "C # gegevenstypen." TutorialsPoint , Beschikbaar Hier