Rozdiel medzi premostením a preťažením v C #

Kľúčový rozdiel - prevažujúci vs preťaženie v C #
 

kľúčový rozdiel medzi prepísaním a preťažením v C # je to viazanie prepísaného volania metódy na jeho definíciu nastane za behu, zatiaľ čo viazanie preťaženého volania metódy na jeho definíciu nastane v čase kompilácie.

C # je univerzálny programovací jazyk vyvinutý spoločnosťou Microsoft. Hlavnou výhodou C # je, že podporuje objektovo orientované programovanie (OOP). Jedným z pilierov OOP je polymorfizmus. Dáva objektu viacnásobné správanie. V polymorfizme existujú dva typy známe ako premostenie a preťaženie. Tento článok sa zaoberá rozdielom medzi prepísaním metódy a preťažením v C #.

OBSAH

1. Prehľad a kľúčový rozdiel
2. Čo je rozhodujúce v C #
3. Čo je preťaženie v C #
4. Podobnosti medzi prvými a preťaženiami v C #
5. Porovnanie bok po boku - prekonanie verzus preťaženie v C # v tabuľkovej forme
6. Zhrnutie

Čo je v C # prvoradé?

Existuje jedna ďalšia dôležitá koncepcia v OOP je dedičstvo. Je to použitie atribútov a metód už existujúcej triedy. Zlepšuje opakované použitie kódu. Už existujúca trieda je základná trieda a nová trieda sa nazýva odvodená trieda. Na prekonanie polymorfizmu by mala existovať základná trieda a odvodená trieda. Väzba prepísaného volania metódy na definíciu nastane za behu. Príklad je nasledujúci.

Obrázok 01: C # Program s potlačením

Podľa vyššie uvedeného programu je trieda Tvar základnou triedou a obsahuje metódu zobrazenia. Trieda Obdĺžnik a trojuholník sú odvodené triedy. Tieto odvodené triedy majú tiež rovnaké zobrazenie metód s vlastnými implementáciami.

Najprv sa vytvorí referenčná premenná obj. Ukazuje na objekt Shape. Spustí sa teda metóda zobrazenia triedy Shape. Potom referenčná premenná ukazuje na objekt Obdĺžnik. Spustí sa teda metóda zobrazenia triedy Obdĺžnik. Nakoniec referenčná premenná ukazuje na objekt trojuholníka. Spustí sa teda metóda zobrazenia triedy Triangle. Metóda zobrazenia základnej triedy je nahradená metódami zobrazovania odvodených tried.

O spôsobe spustenia sa rozhodne za behu. Trieda Shape je písaná s 'virtuálnym' kľúčovým slovom. Triedy Obdĺžnik a Trojuholník sú napísané pomocou kľúčového slova „prepísať“. Ak sa tieto kľúčové slová nepoužijú, výstup vytlačí obsah metódy zobrazenia triedy Shape pre všetkých.

Čo je preťaženie v C #?

Pri preťažení má viacero metód rovnaký názov, ale s rôznymi parametrami. Parametre môžu byť rôznych typov. Metódy môžu mať tiež rôzny počet parametrov. Preťaženie metódy sa vyskytuje v rovnakej triede. Viazanie preťažených metód na definíciu nastane v čase kompilácie. Pozrite si nasledujúci program C #.

Obrázok 02: Program C # s preťažením

Podľa vyššie uvedeného programu má trieda A dve metódy s rovnakým názvom s názvom sum. Majú rôzne typy parametrov. V hlavnom programe sa vytvorí objekt A. Súčet (2,3) vyvolá metódu súčtu s celými číslami. Súčet (5.1, 7.94) vyvolá metódu sčítania s dvojitými hodnotami. Obe metódy majú rovnaký názov a rovnaký počet parametrov. Typy parametrov sú však rôzne. Požadovaná metóda sa nazýva zodpovedajúcim spôsobom. K preťaženiu môže tiež dôjsť, ak sú názvy metód a typov parametrov rovnaké, ale počet parametrov je odlišný.

Aká je podobnosť medzi prvými a preťaženiami v C #?

  • Prekrývanie aj preťaženie v C # sú typmi polymorfizmu.

Aký je rozdiel medzi nadmerným a preťažením v C #?

Prevažujúce vs preťaženie v C #

Prvoradým cieľom v C # je poskytnúť špecifickú implementáciu v metóde odvodenej triedy pre metódu, ktorá už existuje v základnej triede. Preťaženie v C # znamená vytvoriť viac metód s rovnakým názvom s rôznymi implementáciami.
 parametre
V C # Overriding majú metódy rovnaký názov, rovnaké typy parametrov a rovnaký počet parametrov. V C # Preťaženie majú metódy rovnaký názov, ale odlišný počet parametrov alebo iný typ parametrov.
výskyt
V C # dochádza k prepísaniu v rámci základnej triedy a odvodenej triedy. V C # dochádza k preťaženiu v rámci tej istej triedy.
 Čas viazania
Väzba prepísaného volania metódy na jej definíciu nastane za behu. Viazanie preťaženej metódy volá na jej definíciu nastane v čase kompilácie.
synonymá
Nadradenie sa nazýva ako polymorfizmus runtime, dynamický polymorfizmus alebo neskoré viazanie. Preťaženie sa nazýva skompilovať polymorfizmus, statický polymorfizmus alebo skorá väzba.

zhrnutie - Prevažujúci vs preťaženie v C #

Prevažovanie a preťaženie sú dva typy polymorfizmu. Rozdiel medzi prepísaním a preťažením v C # je ten, že viazanie prepísaného volania metódy na jeho definíciu nastane za behu, zatiaľ čo viazanie preťaženého volania metódy na jeho definíciu nastane v čase kompilácie.

referencie:

1.Kumar, Mukesh. C # Roh. K dispozícii tu
2.tutorialspoint.com. „C # Polymorfizmus.“ TutorialsPointK dispozícii tu
3.tutorialspoint.com. „C # typy údajov.“ TutorialsPoint, k dispozícii tu