Nyckelskillnad - Överstyrning mot överbelastning i C #
Huvudskillnaden mellan åsidosättande och överbelastning i C # är att bindningen av åsidosatta metodanrop till dess definition sker vid körning medan bindningen av överbelastad metodanrop till dess definition sker vid sammanställningstid.
C # är ett allmänt programmeringsspråk utvecklat av Microsoft. Den största fördelen med C # är att den stöder Object Oriented Programming (OOP). En pelare i OOP är polymorfism. Det ger ett objekt att ha flera beteenden. Det finns två typer av polymorfism som kallas överstyrning och överbelastning. Den här artikeln diskuterar skillnaden mellan metodöverstyrning och överbelastning i C #.
INNEHÅLL
1. Översikt och nyckeldifferens
2. Vad är överstyrning i C #
3. Vad är överbelastning i C #
4. Likheter mellan överstyrning och överbelastning i C #
5. Jämförelse sida vid sida - Överstyrning mot överbelastning i C # i tabellform
6. Sammanfattning
Vad är överstyrning i C #?
Det finns varandra viktigt begrepp i OOP är arv. Det är att använda attribut och metoder från den redan existerande klassen. Det förbättrar kodåteranvändbarheten. Den redan existerande klassen är basklassen och den nya klassen kallas den härledda klassen. För att åsidosätta polymorfism bör det finnas en basklass och en härledd klass. Bindningen av den åsidosatta metodanropet till definitionen sker vid körning. Ett exempel är följande.
Figur 01: C # -program med överstyrning
Enligt ovanstående program är klassformen basklassen och den innehåller visningsmetoden. Klassrektangel och triangel är härledda klasser. Dessa härledda klasser har också samma metodvisning med sina egna implementeringar.
Först skapas referensvariabeln obj. Det pekar på Shape-objektet. Så körs visningsmetoden i formklassen. Därefter pekar referensvariabeln på rektangelobjektet. Så körs visningsmetoden i rektangelklassen. Slutligen pekar referensvariabeln på triangelobjektet. Så körs visningsmetoden för triangelklassen. Basklassvisningsmetoden åsidosätts av visningsmetoderna för de härledda klasserna.
Metoden att köra bestäms vid körning. Shape-klassen är skriven med "virtuellt" nyckelord. Klasserna rektangel och triangel skrivs med nyckelordet 'åsidosätta'. Om dessa nyckelord inte används kommer utskriften att skriva ut innehållet i visningsmetoden i formklass för alla.
Vad är överbelastning i C #?
Vid överbelastning har flera metoder samma namn men med olika parametrar. Parametrarna kan vara av olika slag. Metoderna kan också ha ett annat antal parametrar. Metodöverbelastning sker i samma klass. Bindningen av överbelastade metoder till definitionen sker vid sammanställningstid. Se nedanstående C # -program.
Figur 02: C # -program med överbelastning
Enligt ovanstående program har klass A två metoder med samma namn som summan. De har olika typer av parametrar. I huvudprogrammet skapas ett objekt av A. Summan (2,3) anropar summan metoden med heltal. Summan (5.1, 7.94) anropar summan metoden med dubbla värden. Båda metoderna har samma namn och samma antal parametrar. Men parametertyperna är olika. Den erforderliga metoden kallas därefter. Överbelastning kan också uppstå om metodnamnen och parametertyperna är desamma men antalet parametrar är olika.
Vad är likheten mellan överstyrning och överbelastning i C #?
Både överstyrning och överbelastning i C # är typer av polymorfism
Vad är skillnaden mellan överstyrning och överbelastning i C #?
Skilja artikeln mitt före bordet
Överstyrning mot överbelastning i C # |
|
Åsidosättande i C # är att tillhandahålla en specifik implementering i en härledd klassmetod för en metod som redan finns i basklassen. | Överbelastning i C # är att skapa flera metoder med samma namn med olika implementeringar. |
Parametrar | |
I C # Overriding har metoderna samma namn, samma parametertyper och samma antal parametrar. | I C # Overloading har metoderna samma namn men ett annat antal parametrar eller en annan typ av parametrar. |
Förekomst | |
I C # sker överstyrning inom basklassen och den härledda klassen. | I C # sker överbelastning inom samma klass. |
Bindande tid | |
Bindningen av den åsidosatta metodanropet till dess definition sker vid körning. | Bindningen av det överbelastade metodanropet till dess definition sker vid sammanställningstid. |
Synonymer | |
Överstyrning kallas som polymorfism, dynamisk polymorfism eller sen bindning. | Överbelastning kallas som polymorfism, statisk polymorfism eller tidig bindning. |
Sammanfattning - Överstyrning mot överbelastning i C #
Överstyrning och överbelastning är två typer av polymorfism. Skillnaden mellan åsidosättande och överbelastning i C # är att bindningen av det åsidosatta metodanropet till dess definition sker vid körning medan bindningen av det överbelastade metodanropet till dess definition sker vid sammanställningstid.