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ő.
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.
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.