Rozdiel Medzi Prepísaním A Preťažením V C

Obsah:

Rozdiel Medzi Prepísaním A Preťažením V C
Rozdiel Medzi Prepísaním A Preťažením V C

Video: Rozdiel Medzi Prepísaním A Preťažením V C

Video: Rozdiel Medzi Prepísaním A Preťažením V C
Video: Apple iOS 5.1 Walkthrough 2024, Smieť
Anonim

Kľúčový rozdiel - prepísanie vs preťaženie v C #

Kľúčový rozdiel medzi prepísaním a preťažením v C # je ten, že väzba prepísaného volania metódy na jej definíciu sa deje za behu, zatiaľ čo väzba preťaženého volania metódy na jej definíciu sa deje 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 pilierom OOP je polymorfizmus. Dáva objektu viacnásobné správanie. Existujú dva typy polymorfizmu známe ako prepísanie a preťaženie. Tento článok pojednáva o rozdieloch medzi prepísaním metódy a preťažením v C #.

OBSAH

1. Prehľad a kľúčový rozdiel

2. Čo je prepísanie v C #

3. Čo je preťaženie v C #

4. Podobnosti medzi prepísaním a preťažením v C #

5. Porovnanie vedľa seba - prepísanie vs preťaženie v C # v tabuľkovej forme

6. Zhrnutie

Čo je prepísanie v C #?

V OOP existuje ešte jeden dôležitý koncept - dedičstvo. Je to použitie atribútov a metód už existujúcej triedy. Zlepšuje opätovné použitie kódu. Už existujúca trieda je základnou triedou a nová trieda je známa ako odvodená trieda. Pri prekonaní polymorfizmu by mala existovať základná trieda a odvodená trieda. K väzbe prepísaného volania metódy na definíciu dôjde za behu programu. Príklad je nasledovný.

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

Obrázok 01: Program C # s prepísaním

Podľa vyššie uvedeného programu je trieda Shape 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ódy s vlastnými implementáciami.

Najskôr sa vytvorí referenčná premenná obj. Ukazuje na objekt Tvar. Vykoná sa teda metóda zobrazenia triedy Shape. Potom referenčná premenná ukazuje na objekt Obdĺžnik. Vykoná sa teda metóda zobrazenia triedy Obdĺžnik. Nakoniec referenčná premenná ukazuje na objekt Triangle. Vykoná sa teda metóda zobrazenia triedy Triangle. Metóda zobrazenia základnej triedy je prepísaná metódami zobrazenia odvodených tried.

O spôsobe spustenia sa rozhoduje za behu. Trieda Shape je napísaná pomocou kľúčového slova „virtual“. Triedy Rectangle a Triangle sú písané kľúčovým slovom 'override'. Ak sa tieto kľúčové slová nepoužívajú, výstupom sa vytlačí obsah metódy zobrazenia triedy Tvar pre všetkých.

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

Pri preťažení má viac metód rovnaký názov, ale s rôznymi parametrami. Parametre môžu byť rôznych typov. Metódy môžu mať aj rôzny počet parametrov. Preťaženie metódy sa vyskytuje v rovnakej triede. Väzba preťažených metód na definíciu sa deje v čase kompilácie. Prečítajte si program C # uvedený nižšie.

Kľúčový rozdiel medzi prepísaním a preťažením v C #
Kľúčový rozdiel medzi prepísaním a preťažením v 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, ktoré sa nazývajú 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účtu s dvojnásobnými hodnotami. Obidve metódy majú rovnaký názov a rovnaký počet parametrov. Ale typy parametrov sú rôzne. Podľa toho sa volá požadovaná metóda. 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 prepísaním a preťažením v C #?

Prepísanie aj preťaženie v C # sú typy polymorfizmu

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

Rozdielny článok v strede pred tabuľkou

Prepísanie vs preťaženie v C #

Prepísaním v C # je poskytnúť konkrétnu implementáciu v metóde odvodenej triedy pre metódu, ktorá už existuje v základnej triede. Preťažením v C # je vytvorenie viacerých 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 # Overloading majú metódy rovnaký názov, ale iný počet parametrov alebo iný typ parametrov.
Výskyt
V C # sa prepísanie vyskytuje v rámci základnej triedy a odvodenej triedy. V C # sa preťaženie vyskytuje v rámci tej istej triedy.
Čas viazania
Väzba prepísaného volania metódy na jej definíciu sa deje za behu programu. Väzba preťaženého volania metódy na jej definíciu sa deje v čase kompilácie.
Synonymá
Prepísanie sa nazýva runtime polymorfizmus, dynamický polymorfizmus alebo neskorá väzba. Preťaženie sa nazýva polymorfizmus času kompilácie, statický polymorfizmus alebo skorá väzba.

Zhrnutie - Prepísanie vs preťaženie v C #

Prepísanie a preťaženie sú dva typy polymorfizmu. Rozdiel medzi prepísaním a preťažením v C # je ten, že väzba prepísaného volania metódy na jej definíciu sa deje za behu, zatiaľ čo väzba preťaženého volania metódy na jej definíciu sa deje v čase kompilácie.

Odporúčaná: