Rozdíl mezi přemostěním a přetížením v C #

Key Difference - Převažující vs Přetížení v C #
 

klíčový rozdíl mezi přepisováním a přetížením v C # je to vazba přepsaného volání metody na její definici nastane za běhu, zatímco vazba přetíženého volání metody na její definici nastane v době kompilace.

C # je univerzální programovací jazyk vyvinutý společností Microsoft. Hlavní výhodou C # je, že podporuje objektově orientované programování (OOP). Jedním z pilířů OOP je polymorfismus. Poskytuje objektu více chování. V polymorfismu existují dva typy známé jako přelití a přetížení. Tento článek popisuje rozdíl mezi přepsáním metody a přetížením v C #.

OBSAH

1. Přehled a klíčový rozdíl
2. Co je v C # prvořadé
3. Co je přetížení v C #
4. Podobnosti mezi přemostěním a přetížením v C #
5. Porovnání bok po boku - Převažující vs. přetížení v C # v tabulkové formě
6. Shrnutí

Co je v C #?

Existuje jeden další důležitý koncept v OOP je dědičnost. Jedná se o použití atributů a metod již existující třídy. Zlepšuje opakovatelnost kódu. Již existující třída je základní třída a nová třída je známá jako odvozená třída. Při potlačování polymorfismu by měla existovat základní třída a odvozená třída. Vazba přepsaného volání metody k definici probíhá za běhu. Příklad je následující.

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

Podle výše uvedeného programu je třída Shape základní třídou a obsahuje metodu zobrazení. Třída Obdélník a Trojúhelník jsou odvozené třídy. Tyto odvozené třídy mají také stejné zobrazení metod s vlastní implementací.

Nejprve se vytvoří referenční proměnná obj. Ukazuje na objekt Shape. Spustí se tedy metoda zobrazení třídy Shape. Poté referenční proměnná odkazuje na objekt Obdélník. Spustí se tedy metoda zobrazení třídy Rectangle. Nakonec referenční proměnná odkazuje na objekt trojúhelníku. Spustí se tedy metoda zobrazení třídy Triangle. Metoda zobrazení základní třídy je přepsána metodami zobrazení odvozených tříd.

O způsobu spuštění se rozhodne za běhu. Třída Shape je napsána s 'virtuálním' klíčovým slovem. Třídy Rectangle a Triangle jsou psány s klíčovým slovem 'override'. Pokud tato klíčová slova nejsou použita, výstup vytiskne obsah metody zobrazení třídy Shape pro všechny.

Co je přetížení v C #?

Při přetížení má více metod stejný název, ale s různými parametry. Parametry mohou být různých typů. Metody mohou také mít různý počet parametrů. Metoda přetížení dochází ve stejné třídě. Vazba přetížených metod na definici nastane v době kompilace. Viz níže uvedený program C #.

Obrázek 02: Program C # s přetížením

Podle výše uvedeného programu má třída A dvě metody se stejným názvem s názvem sum. Mají různé typy parametrů. V hlavním programu je vytvořen objekt A. Součet (2,3) vyvolá metodu součtu s celými čísly. Součet (5.1, 7.94) vyvolá metodu sum s dvojitými hodnotami. Obě metody mají stejný název a stejný počet parametrů. Typy parametrů se však liší. Požadovaná metoda se nazývá odpovídajícím způsobem. Přetížení může také nastat, pokud jsou názvy metod a typů parametrů stejné, ale počet parametrů je jiný.

Jaká je podobnost mezi nadřazením a přetížením v C #?

  • Jak Overriding, tak Overloading v C # jsou typy polymorfismu.

Jaký je rozdíl mezi přemostěním a přetížením v C #?

Převažující vs přetížení v C #

Převažující v C # je poskytnout konkrétní implementaci metody odvozené třídy pro metodu, která již existuje v základní třídě. Přetížení v C # znamená vytvoření více metod se stejným názvem s různými implementacemi.
 Parametry
V C # Overriding mají metody stejný název, stejné typy parametrů a stejný počet parametrů. V C # Přetížení mají metody stejný název, ale jiný počet parametrů nebo jiný typ parametrů.
Výskyt
V C # dochází k přepisování v základní třídě a odvozené třídě. V C # dochází k přetížení ve stejné třídě.
 Vazebný čas
Vazba přepsaného volání metody na její definici nastane za běhu. Vazba volání přetížené metody na její definici nastane v době kompilace.
Synonyma
Overriding se nazývá jako runtime polymorfismus, dynamický polymorfismus nebo pozdní vazba. Přetížení se nazývá kompilovat polymorfismus času, statický polymorfismus nebo časná vazba.

souhrn - Převažující vs Přetížení v C #

Přepisování a přetížení jsou dva typy polymorfismu. Rozdíl mezi přepsáním a přetížením v C # spočívá v tom, že k vazbě přepsaného volání metody na její definici dochází za běhu, zatímco k vazbě přepsaného volání metody k jeho definici dochází v době kompilace.

Odkaz:

1.Kumar, Mukesh. C # Corner. K dispozici zde
2.tutorialspoint.com. "C # Polymorfismus." Výukový programK dispozici zde
3.tutorialspoint.com. "C # typy dat." TutorialsPoint, k dispozici zde