Különbség A Felülbírálás és A Túlterhelés Között C-ben

Tartalomjegyzék:

Különbség A Felülbírálás és A Túlterhelés Között C-ben
Különbség A Felülbírálás és A Túlterhelés Között C-ben

Videó: Különbség A Felülbírálás és A Túlterhelés Között C-ben

Videó: Különbség A Felülbírálás és A Túlterhelés Között C-ben
Videó: Section 7 2024, December
Anonim

Fő különbség - felülbírálás vs túlterhelés C # -ben

A legfontosabb különbség a felülbírálás és a túlterhelés között a C # -ben az, hogy az felülbírált metódus-hívás és a definíciója közötti kötés futás közben, míg a túlterhelt metódus-hívás kötése a definíciójához fordítási időben történik.

A C # egy általános célú programozási nyelv, amelyet a Microsoft fejlesztett ki. A C # fő előnye, hogy támogatja az objektumorientált programozást (OOP). Az OOP egyik pillére a polimorfizmus. Több objektumot ad egy objektumnak. Kétféle típus létezik a polimorfizmusban: felülbírálás és túlterhelés. Ez a cikk a módszer felülírása és a túlterhelés különbségét tárgyalja a C # -ben.

TARTALOM

1. Áttekintés és kulcsfontosságú különbség

2. Mi az elsőbbség a C #

3-ban? Mi a túlterhelés a C #

4.-ben. A felülbírálás és a túlterhelés hasonlóságai a C #

5-ben. Egymás melletti összehasonlítás - felülbírálás vs túlterhelés C # -ben táblázatos formában

6. Összefoglalás

Mi az elsőbbség a C # -ben?

Az OOP-ban egy másik fontos fogalom az öröklés. A már létező osztály attribútumainak és módszereinek használata. Javítja a kód újrafelhasználhatóságát. A már létező osztály az alaposztály, az új osztály pedig származtatott osztály. A polimorfizmus felülbírálásakor kell lennie egy alaposztálynak és egy származtatott osztálynak. Az felülbírált metódushívás kötése a definícióhoz futás közben történik. Egy példa a következő.

A felülbírálás és a túlterhelés különbsége a C # számban
A felülbírálás és a túlterhelés különbsége a C # számban

01. ábra: C # program felülírással

A fenti program szerint a Shape osztály az alaposztály, és tartalmazza a megjelenítési módszert. Az osztály téglalap és háromszög származtatott osztályok. Ezek a származtatott osztályok ugyanazt a módszert mutatják be saját megvalósításaikkal is.

Először az obj referencia változó jön létre. A Shape objektumra mutat. Tehát a Shape osztály megjelenítési módja végrehajtásra kerül. Ezután a referencia változó a Téglalap objektumra mutat. Tehát a Téglalap osztály megjelenítési módja végrehajtásra kerül. Végül a referencia változó a Háromszög objektumra mutat. Tehát a Háromszög osztály megjelenítési módja végrehajtásra kerül. Az alaposztály megjelenítési módszerét a származtatott osztályok megjelenítési módszerei felülírják.

A futtatás módjáról futás közben döntenek. A Shape osztályt 'virtuális' kulcsszóval írják. A Téglalap és a Háromszög osztályokat 'felülbírálás' kulcsszóval írják. Ha ezeket a kulcsszavakat nem használják, a kimenet mindenki számára kinyomtatja a Shape osztály megjelenítési módszerének tartalmát.

Mi a túlterhelés a C # -ben?

Túlterhelés esetén több módszernek ugyanaz a neve, de eltérő paraméterekkel. A paraméterek különböző típusúak lehetnek. A módszerek eltérő számú paraméterrel is rendelkezhetnek. A módszer túlterhelése ugyanabban az osztályban fordul elő. A túlterhelt módszerek kötődése a definícióhoz fordítási időben történik. Lásd az alábbi C # programot.

A legfontosabb különbség a felülbírálás és a túlterhelés között a C # számban
A legfontosabb különbség a felülbírálás és a túlterhelés között a C # számban

02. ábra: C # program túlterheléssel

A fenti program szerint az A osztálynak két azonos nevű módszere van, az úgynevezett összeg. Különböző típusú paramétereik vannak. A fő programban létrejön egy A objektum. Az összeg (2,3) egész számokkal meghívja az összeg metódust. Az összeg (5.1, 7.94) kettős értékekkel hívja meg az összeg metódust. Mindkét módszernek ugyanaz a neve és azonos számú paramétere van. De a paramétertípusok eltérőek. A szükséges módszert ennek megfelelően hívjuk meg. Túlterhelés akkor is előfordulhat, ha a metódusok és a paraméterek megegyeznek, de a paraméterek száma eltér.

Mi a hasonlóság a felülbírálás és a túlterhelés között a C # -ben?

A C # -ben mind az felülbírálás, mind a túlterhelés a polimorfizmus egyik típusa

Mi a különbség a felülbírálás és a túlterhelés között a C # -ben?

Különböző cikk a táblázat előtt

Felülbírálás vs túlterhelés C # -ben

A C # -en felülírva egy konkrét megvalósítást kell biztosítani egy származtatott osztály-módszerben az alaposztályban már létező módszer számára. A C # túlterhelése több metódust hoz létre ugyanazzal a névvel, különböző megvalósításokkal.
Paraméterek
A C # Felülírásokban a metódusoknak ugyanaz a neve, azonos paramétertípusai és azonos számú paramétere van. A C # Túlterhelésnél a módszereknek ugyanaz a neve, de más számú paraméterük vagy más típusú paraméterük van.
Esemény
A C # esetében az felülbírálás az alaposztályon és a származtatott osztályon belül történik. C # esetén a túlterhelés ugyanazon osztályon belül történik.
Kötési idő
A felülbírált metódushívás a definíciójához való kötése futás közben történik. A túlterhelt metódushívás hozzákapcsolása a definíciójához fordítási időben történik.
Szinonimák
A felülírást futásidejű polimorfizmusnak, dinamikus polimorfizmusnak vagy késői kötésnek nevezzük. A túlterhelést fordítási idő polimorfizmusnak, statikus polimorfizmusnak vagy korai kötődésnek nevezzük.

Összegzés - felülbírálás vs túlterhelés a C # -ben

A felülbírálás és a túlterhelés a polimorfizmus két típusa. A különbség a felülbírálás és a túlterhelés között a C # -ben az, hogy az felülbírált metódushívásnak a definíciójához való kötése futás közben, míg a túlterhelt metódushívás definiálásához fordítási időben történik.

Ajánlott: