De nyckelskillnad mellan tvingande och överbelastning i C # är det bindningen av överdriven metod kallas till dess definition sker vid körning medan bindning av överbelastad metod kallar till dess definition sker vid kompileringstid.
C # är ett generellt programmerat språk som utvecklats av Microsoft. Den främsta fördelen med C # är att den stöder Objektorienterad Programmering (OOP). En pelare med OOP är polymorfism. Det ger ett föremål att ha flera beteenden. Det finns två typer i polymorfism känd som övergripande och överbelastning. I den här artikeln diskuteras skillnaden mellan metodöverstyrning och överbelastning i C #.
1. Översikt och nyckelskillnad
2. Vad är Övergripande i C #
3. Vad är överbelastning i C #
4. Likheter mellan Överstyrning och Överbelastning i C #
5. Jämförelse vid sida vid sida - Övergripande mot överbelastning i C # i tabellform
6. Sammanfattning
Det finns ett annat viktigt begrepp i OOP är arv. Det är att använda attribut och metoder för den redan befintliga klassen. Det förbättrar kodåteranvändning. Den redan existerande klassen är basklassen, och den nya klassen är känd som den härledda klassen. Vid överlägsen polymorfism borde det finnas en basklass och en härledd klass. Bindningen av det överrättade metoden kallar till definitionen sker vid körning. Ett exempel är som följer.
Figur 01: C # Program med övergripande
Enligt ovanstående program är klassformen basklassen och den innehåller visningsmetoden. Klass rektangel och triangel är härledda klasser. Dessa härledda klasser har också samma metodvisning med egna implementeringar.
Först skapas referensvariabeln obj. Det pekar på Shape-objektet. Så kommer visningsmetoden för Form-klassen att utföras. Därefter pekar referensvariabeln på rektangelobjektet. Så kommer visningsmetoden för rektangelklassen att köras. Slutligen pekar referensvariabeln på Triangle-objektet. Så kommer visningsmetoden för Triangle-klassen att köras. Basklassvisningsmetoden överrulleras av de visade metoderna för de härledda klasserna.
Metoden att köra bestäms vid körning. Form-klassen är skrivet med "virtuellt" nyckelord. Rektangel- och triangeln klasserna är skrivna med "åsidosätt" sökord. Om dessa nyckelord inte används kommer utskriften att skriva ut innehållet i visningsmetoden för Form-klass för alla.
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. Metoden överbelastning sker i samma klass. Bindningen av överbelastade metoder till definitionen händer vid sammanställningstiden. Se nedan C # programmet.
Figur 02: C # Program med överbelastning
Enligt ovanstående program har klass A två metoder med samma namn som kallas summa. De har olika typer av parametrar. I huvudprogrammet skapas ett objekt av A. Summan (2,3) kommer att anropa summetoden med heltal. Summan (5.1, 7.94) kommer att anropa summetoden 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 samma men antalet parametrar är olika.
Övergripande vs Överbelastning i C # | |
Övergripande 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 # förekommer överordnande inom basklassen och den härledda klassen. | I C # sker överbelastning inom samma klass. |
Bindningstid | |
Bindningen av det överdrivna metoden kallas till dess definition sker vid körning. | Bindningen av det överbelastade metoden kallas till dess definition sker vid sammanställningstiden. |
synonymer | |
Övergripande kallas som runtime polymorfism, dynamisk polymorfism eller sen bindning. | Överbelastning kallas som sammanställa tidspolymorfism, statisk polymorfism eller tidig bindning. |
Överordnande och överbelastning är två typer av polymorfism. Skillnaden mellan tvingande och överbelastning i C # är att bindningen av den överdriven metoden kallas till dess definition sker vid körning medan bindningen av den överbelastade metoden kallar till dess definition händer vid sammanställningstid.
1.Kumar, Mukesh. C # Corner. Tillgänglig här
2.tutorialspoint.com. "C # polymorfism". TutorialsPoint. Tillgänglig här
3.tutorialspoint.com. "C # datatyper". TutorialsPoint , Tillgänglig här