Skillnaden mellan överstyrning och överbelastning i C

Innehållsförteckning:

Skillnaden mellan överstyrning och överbelastning i C
Skillnaden mellan överstyrning och överbelastning i C

Video: Skillnaden mellan överstyrning och överbelastning i C

Video: Skillnaden mellan överstyrning och överbelastning i C
Video: What is the difference between Overloading and Overriding ? 2024, November
Anonim

Nyckelskillnad – Åsidosättande vs överbelastning i C

Nyckelskillnaden mellan åsidosättande och överbelastning i C är att bindningen av åsidosatt metodanrop till dess definition sker under körning medan bindningen av överbelastad metodanrop till dess definition sker vid kompileringstidpunkten.

C är ett allmänt programmeringsspråk utvecklat av Microsoft. Den största fördelen med C är att den stöder objektorienterad programmering (OOP). En pelare i OOP är polymorfism. Det ger ett objekt att ha flera beteenden. Det finns två typer inom polymorfism som kallas åsidosättande och överbelastning. Den här artikeln diskuterar skillnaden mellan metodöverstyrning och överbelastning i C.

Vad är åsidosättande i C?

Det finns ett annat viktigt koncept i OOP är arv. Det är att använda attribut och metoder för den redan existerande klassen. Det förbättrar kodåteranvändbarhet. Den redan befintliga klassen är basklassen, och den nya klassen är känd som den härledda klassen. Vid åsidosättande av polymorfism bör det finnas en basklass och en härledd klass. Bindningen av det åsidosatta metodanropet till definitionen sker under körning. Ett exempel är följande.

Skillnaden mellan överstyrning och överbelastning i C
Skillnaden mellan överstyrning och överbelastning i C

Figur 01: C-program med överstyrning

Enligt programmet ovan är klassen Shape basklassen och den innehåller visningsmetoden. Klass rektangel och triangel är härledda klasser. Dessa härledda klasser har också samma metodvisning med sina egna implementeringar.

Först skapas referensvariabeln obj. Den pekar på Shape-objektet. Så, visningsmetoden för Shape-klassen kommer att köras. Sedan pekar referensvariabeln på Rectangle-objektet. Så visningsmetoden för klassen Rectangle kommer att köras. Slutligen pekar referensvariabeln på Triangle-objektet. Så visningsmetoden för Triangle-klassen kommer att köras. 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 är skrivna med nyckelordet "override". Om dessa nyckelord inte används kommer utdata att skriva ut innehållet i visningsmetoden för Shape-klassen 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 kompilering. Se nedanstående C-program.

Nyckelskillnaden mellan överstyrning och överbelastning i C
Nyckelskillnaden mellan överstyrning och överbelastning i C

Figur 02: C-program med överbelastning

Enligt programmet ovan 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 summametoden med heltal. Summan (5.1, 7.94) kommer att anropa summametoden med dubbla värden. Båda metoderna har samma namn och samma antal parametrar. Men parametertyperna är olika. Den nödvändiga metoden anropas därefter. Överbelastning kan också inträffa om metodnamnen och parametertyperna är samma men antalet parametrar är olika.

Vad är likheten mellan överstyrning och överbelastning i C?

Både åsidosättande och överbelastning i C är typer av polymorfism

Vad är skillnaden mellan överstyrning och överbelastning i C?

Åsidosättande vs ö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-överstyrning 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.
Currence
I C sker överstyrning inom basklassen och den härledda klassen. I C sker överbelastning inom samma klass.
Bindningstid
Bindningen av det åsidosatta metodanropet till dess definition sker under körning. Bindningen av det överbelastade metodanropet till dess definition sker vid kompilering.
Synonymer
Overriding kallas körtidspolymorfism, dynamisk polymorfism eller sen bindning. Överbelastning kallas kompileringstidspolymorfism, statisk polymorfism eller tidig bindning.

Sammanfattning – Åsidosättande vs överbelastning i C

Åsidosättande 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 kompileringstidpunkten.

Rekommenderad: