Verskil tussen oorheersing en oorlaai in C

INHOUDSOPGAWE:

Verskil tussen oorheersing en oorlaai in C
Verskil tussen oorheersing en oorlaai in C

Video: Verskil tussen oorheersing en oorlaai in C

Video: Verskil tussen oorheersing en oorlaai in C
Video: DENK UZELF RIJK - Anthony Norvell GEHEIMEN van geld MAGNETISME luisterboek 2024, November
Anonim

Sleutelverskil – Oorheersing vs oorlading in C

Die sleutelverskil tussen oorheersing en oorlaai in C is dat die binding van oorheersde metode-oproep aan sy definisie tydens looptyd plaasvind terwyl die binding van oorlaaide metode-oproep aan sy definisie plaasvind tydens samestellingstyd.

C is 'n algemene programmeertaal wat deur Microsoft ontwikkel is. Die grootste voordeel van C is dat dit objekgeoriënteerde programmering (OOP) ondersteun. Een pilaar van OOP is Polimorfisme. Dit gee 'n voorwerp om veelvuldige gedrag te hê. Daar is twee tipes in Polimorfisme bekend as oorheersing en oorlading. Hierdie artikel bespreek die verskil tussen metode-oorheersing en oorlaai in C.

Wat is oorheersend in C?

Daar is 'n ander belangrike konsep in OOP is oorerwing. Dit is om eienskappe en metodes van die reeds bestaande klas te gebruik. Dit verbeter kode herbruikbaarheid. Die reeds bestaande klas is die basisklas, en die nuwe klas staan bekend as die afgeleide klas. In die oorheersing van polimorfisme moet daar 'n basisklas en 'n afgeleide klas wees. Die binding van die ignoreerde metode-oproep aan die definisie vind plaas tydens looptyd. 'n Voorbeeld is soos volg.

Verskil tussen oorheersing en oorlaai in C
Verskil tussen oorheersing en oorlaai in C

Figuur 01: C-program met oorheersing

Volgens bogenoemde program is die klas Shape die basisklas, en dit bevat die vertoonmetode. Klas Reghoek en Driehoek is afgeleide klasse. Hierdie afgeleide klasse het ook dieselfde metode vertoon met hul eie implementerings.

Eers word die verwysingsveranderlike obj geskep. Dit wys na die Shape-voorwerp. Dus, die vertoonmetode van Shape-klas sal uitgevoer word. Dan wys die verwysingsveranderlike na die Reghoek-voorwerp. Dus, die vertoonmetode van die Rectangle-klas sal uitgevoer word. Laastens wys die verwysingsveranderlike na die Driehoek-voorwerp. Dus, die vertoonmetode van Driehoek-klas sal uitgevoer word. Die basisklasvertoonmetode word deur die vertoonmetodes van die afgeleide klasse oorheers.

Die metode om te hardloop word tydens looptyd besluit. Die Shape-klas is geskryf met 'virtuele' sleutelwoord. Die Reghoek- en Driehoek-klasse word geskryf met 'override'-sleutelwoord. As hierdie sleutelwoorde nie gebruik word nie, sal die uitvoer die inhoud van die vertoonmetode van Shape-klas vir almal druk.

Wat is oorlaai in C?

In oorlading het verskeie metodes dieselfde naam, maar met verskillende parameters. Die parameters kan van verskillende tipes wees. Die metodes kan ook 'n ander aantal parameters hê. Metode-oorlading vind in dieselfde klas plaas. Die binding van oorlaaide metodes aan die definisie vind plaas tydens samestellingstyd. Verwys na die onderstaande C-program.

Sleutelverskil tussen oorheersing en oorlaai in C
Sleutelverskil tussen oorheersing en oorlaai in C

Figuur 02: C-program met oorlaai

Volgens bogenoemde program het klas A twee metodes met dieselfde naam genoem som. Hulle het verskillende tipes parameters. In die hoofprogram word 'n objek van A geskep. Die som (2, 3) sal die sommetode met heelgetalle oproep. Die som (5.1, 7.94) sal die sommetode met dubbelwaardes oproep. Albei metodes het dieselfde naam en dieselfde aantal parameters. Maar die parameter tipes is anders. Die vereiste metode word dienooreenkomstig genoem. Oorlading kan ook voorkom as die metodename en parametertipes dieselfde is, maar die aantal parameters verskil.

Wat is die ooreenkoms tussen oorheersing en oorlaai in C?

Beide oorheersing en oorlading in C is tipes polimorfisme

Wat is die verskil tussen oorheersing en oorlaai in C?

Oorheersing vs oorlaai in C

Oorslaan in C is om 'n spesifieke implementering in 'n afgeleide klasmetode te verskaf vir 'n metode wat reeds in die basisklas bestaan. Oorlaai in C is om veelvuldige metodes met dieselfde naam met verskillende implementerings te skep.
Parameters
In C-oorheersing het die metodes dieselfde naam, dieselfde parametertipes en dieselfde aantal parameters. In C-oorlading het die metodes dieselfde naam, maar 'n ander aantal parameters of 'n ander tipe parameters.
Occurrence
In C vind oorheersing plaas binne die basisklas en die afgeleide klas. In C vind oorlading binne dieselfde klas plaas.
Bindingstyd
Die binding van die ignoreerde metode-oproep aan sy definisie vind plaas tydens looptyd. Die binding van die oorlaaide metode-oproep aan sy definisie vind plaas tydens samestellingstyd.
Sinonieme
Oorheersing word as runtime-polimorfisme, dinamiese polimorfisme of laat binding genoem. Oorlading word saamsteltyd-polimorfisme, statiese polimorfisme of vroeë binding genoem.

Opsomming – Oorheersing vs oorlading in C

Oorslaan en oorlaai is twee tipes polimorfisme. Die verskil tussen oorheersing en oorlaai in C is dat die binding van die oorheersde metode-oproep aan sy definisie tydens looptyd plaasvind, terwyl die binding van die oorlaaide metode-oproep aan sy definisie plaasvind tydens samestellingstyd.

Aanbeveel: