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

Tartalomjegyzék:

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

Videó: Különbség a felülírás és a túlterhelés között C-ben

Videó: Különbség a felülírás és a túlterhelés között C-ben
Videó: Horizon: Forbidden West (The Movie) 2024, December
Anonim

Kiemelt különbség – felülbírálás és túlterhelés a C nyelvben

A legfontosabb különbség a felülbírálás és a túlterhelés között a C nyelvben az, hogy a felülírt metódushívások definíciójához való hozzárendelése futási időben, míg a túlterhelt metódushívás definíciójához a 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öbbféle viselkedést ad egy tárgynak. A polimorfizmusnak két típusa van, amelyeket felülbírálásnak és túlterhelésnek neveznek. Ez a cikk a metódus felülbírálása és a túlterhelés közötti különbséget tárgyalja C-ban.

Mi a felülírás a C-ban?

Az OOP-ban van egy másik fontos fogalom, az öröklődés. A már létező osztály attribútumait és metódusait kell használni. Javítja a kód újrafelhasználhatóságát. A már meglévő osztály az alaposztály, az új osztály pedig származtatott osztály. A polimorfizmus felülbírálásához legyen egy alaposztály és egy származtatott osztály. A felülírt metódushívás hozzárendelése a definícióhoz futási időben történik. Egy példa a következő.

Különbség a felülírás és a túlterhelés között a C-ban
Különbség a felülírás és a túlterhelés között a C-ban

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

A fenti program szerint a Shape osztály az alaposztály, és ez tartalmazza a megjelenítési metódust. A Téglalap és a Triangle osztály származtatott osztályok. Ezek a származtatott osztályok is ugyanazt a metódusmegjelenítést tartalmazzák saját implementációikkal.

Először az obj referenciaváltozó jön létre. A Shape objektumra mutat. Tehát a Shape osztály megjelenítési metódusa fog végrehajtani. Ezután a referenciaváltozó a Rectangle objektumra mutat. Tehát a Rectangle osztály megjelenítési metódusa fog végrehajtani. Végül a referenciaváltozó a Triangle objektumra mutat. Tehát a Triangle osztály megjelenítési metódusa fog végrehajtani. Az alaposztály megjelenítési metódusát felülírják a származtatott osztályok megjelenítési metódusai.

A futtatás módját futási időben határozzák meg. A Shape osztály „virtuális” kulcsszóval van írva. A Rectangle és Triangle osztályokat a ‘override’ kulcsszóval írjuk. Ha ezeket a kulcsszavakat nem használja, a kimenet kiírja a Shape osztály megjelenítési metódusának tartalmát mindenre.

Mi az a túlterhelés a C-ban?

Túlterhelés esetén több metódusnak 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 történik. A túlterhelt metódusok hozzárendelése a definícióhoz a fordítási időben történik. Lásd az alábbi C programot.

Főbb különbség a felülírás és a túlterhelés között a C-ban
Főbb különbség a felülírás és a túlterhelés között a C-ban

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

A fenti program szerint az A osztálynak két azonos nevű metódusa van, az úgynevezett összeg. Különféle paramétereik vannak. A főprogramban létrejön egy A objektum. Az összeg (2, 3) meghívja az összeg metódusát egész számokkal. Az összeg (5.1, 7.94) dupla értékekkel hívja meg az összeg módszert. 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ívják meg. Túlterhelés akkor is előfordulhat, ha a metódusnevek és a paramétertípusok azonosak, de a paraméterek száma eltérő.

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

Mind a felülírás, mind a túlterhelés a C-ban a polimorfizmus fajtái

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

Felülbírálás és túlterhelés a C nyelvben

A felülbírálás a C-ban egy adott implementációt biztosít egy származtatott osztálymetódusban az alaposztályban már meglévő metódushoz. A C túlterhelése több, azonos nevű metódus létrehozását jelenti, különböző megvalósításokkal.
Paraméterek
A C felülbírálásban a metódusoknak ugyanaz a neve, ugyanaz a paramétertípus és a paraméterek száma. A C túlterhelésben a metódusoknak ugyanaz a neve, de más paraméterek száma vagy más típusú paraméterek.
Előfordulás
A C-ban a felülbírálás az alaposztályon és a származtatott osztályon belül történik. A C nyelven a túlterhelés ugyanazon az osztályon belül történik.
Kötési idő
A felülírt metódushívás hozzárendelése a definíciójához futásidőben történik. A túlterhelt metódushívás hozzárendelése a definíciójához a fordítási időben történik.
Synonyms
A felülbírálást futásidejű polimorfizmusnak, dinamikus polimorfizmusnak vagy késői kötésnek nevezik. A túlterhelést fordítási idő polimorfizmusnak, statikus polimorfizmusnak vagy korai kötésnek nevezik.

Összefoglaló – Felülbírálás és túlterhelés a C nyelvben

A felülírá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-ban az, hogy a felülírt metódushívás definíciójához rendelése futási időben történik, míg a túlterhelt metódushívás definíciójához a fordítási időben.

Ajánlott: