Rozdiel medzi virtuálnou a abstraktnou metódou

Kľúčový rozdiel: Abstraktné metódy sú metódy, ktoré sú deklarované, ale nemajú žiadnu implementáciu. Virtuálne metódy sa používajú na implementáciu typového polymorfizmu. Odvodená trieda má flexibilitu opätovného zavedenia virtuálnej metódy základnej triedy pomocou kľúčového slova "override".

V C # môže byť abstraktné kľúčové slovo použité s oboma triedami a metódami. Abstraktné metódy sú metódy, ktoré nemajú žiadnu formu implementácie. Implementačná logika je však získaná nereaktívnymi triedami odvodenými od nich. Toto sa dosiahne tým, že sa táto metóda vyradí. V dôsledku absencie skutočnej implementácie zostáva zostava tela prázdna. Je dôležité poznamenať, že deklarácia abstraktnej metódy je možná iba v abstraktnej triede. Triedy, ktoré nemožno inicializovať, sú známe ako abstraktné triedy. Trieda, ktorá zdedí z abstraktnej triedy, musí implementovať všetky metódy deklarované ako abstraktné v abstraktnej triede.

Napríklad -

verejná abstraktná trieda exampleAbstractClass

{

verejné abstraktné neplatné exampleabstractMethod ();

verejná virtual void nonAbstractMethod ()

{

Console.WriteLine ("Implementácia je definovaná v metóde");

}

class normalNonAbstractClass: exampleAbstractClass

{

verejné override void exampleabstractMethod ()

{

Console.WriteLine ("Prepísanie príkladuabstraktnej metódy triedy exampleAbstractClass");

}

}

Virtuálne je tiež kľúčové slovo, ktoré je spojené s úpravou metódy, vlastníctva, indexovania alebo deklarácie udalosti. Použitie tohto kľúčového slova umožňuje modifikáciu deklarovaného subjektu v odvodenej triede. V tomto príklade odvodená trieda prepísala virtuálnu metódu deklarovanú v základnej triede.

trieda základne

{

public virtual void Test ()

{

Console.WriteLine ( "Base.test");

}

}

trieda Odvodené: základňa

{

verejné override void Test ()

{

Console.WriteLine ( "Derived.Test");

}

}

Virtuálne metódy sa používajú na implementáciu typového polymorfizmu. Odvodená trieda má flexibilitu opätovného zavedenia virtuálnej metódy základnej triedy pomocou kľúčového slova override. Obe virtuálne aj abstraktné nemožno použiť spolu so statickými alebo virtuálnymi modifikátormi.

Porovnanie medzi virtuálnou a abstraktnou metódou:

Virtuálna metóda

Abstraktná metóda

definícia

Virtuálne metódy sa používajú na implementáciu typového polymorfizmu.

Abstraktné metódy sú metódy, ktoré sú deklarované, ale nemajú žiadnu implementáciu.

uskutočnenie

Áno, môže mať implementáciu

Nie, nemôže mať žiadnu implementáciu

Potrebujete byť prevratné

Nie je povinné

povinný

Kľúčové slovo sa používa na odlíšenie od iných typov metód

virtuálne

abstraktné

Trieda

Trieda obsahujúca virtuálnu metódu môže byť inštancovaná.

Trieda obsahujúca abstraktnú metódu nemôže byť inštancovaná. Dá sa to zdediť len.

Rozsah

Rozsah virtuálnej metódy len pre členov.

Rozsah abstraktnej metódy pre členov a triedy.

Spôsob, ktorý sa má vykonať (typ objektu typu-základňa)

Rodičovská implementácia sa bude nazývať iba v prípade, ak v konkrétnej triede nie je implementovaná žiadna implementácia.

Konkrétna implementácia

Metóda, ktorá sa má vykonať (typ objektu typu betónu)

Konkrétna implementácia

Konkrétna implementácia

Odporúčaná

Súvisiace Články

  • rozdiel medzi: Rozdiel medzi jahňatá a ovce

    Rozdiel medzi jahňatá a ovce

    Hlavný rozdiel: Ovce sú typom domestikovaného zvieraťa, ktoré sa často chová pre mlieko, rúno a mäso. Boli jedným z prvých zvierat, ktoré boli domestikované. V podstate jediný rozdiel medzi jahňatami a ovcami je skutočnosť, že jahňatá sú mladé ovce, konkrétne ovce mladšie ako jeden rok. Po jesennom odchode za
  • rozdiel medzi: Rozdiel medzi iPhone 6s a iPhone 7

    Rozdiel medzi iPhone 6s a iPhone 7

    Kľúčový rozdiel: iPhone 7 je príliš podobný predchádzajúcemu telefónu zo série iPhone 6S. Majú veľa podobností, avšak hlavným rozdielom medzi nimi je, že iPhone 7 je teraz vodotesný, má viac úložného priestoru a väčšiu batériu, ale už nemá 3, 5 mm konektor pre slúchadlá. Mnohí hovoria, že nové je le
  • rozdiel medzi: Rozdiel medzi benzínovými a dieselovými automobilmi

    Rozdiel medzi benzínovými a dieselovými automobilmi

    Hlavný rozdiel: Benzínový motor je spaľovací motor so zážihovým zapaľovaním. Ako jeho názov naznačuje, že beží na benzín, tiež známy ako benzín. Z tohto dôvodu je benzínový motor známy aj ako benzínový motor, najmä v Severnej Amerike. Vznetový motor je spaľovací motor, ktorý beží na nafte. Je tiež známy ako vznetový mot
  • rozdiel medzi: Rozdiel medzi USB myšou a myšou Bluetooth

    Rozdiel medzi USB myšou a myšou Bluetooth

    Kľúčový rozdiel : Bezdrôtová myš preberá trh s káblovou myšou pre bezproblémové a pohodlné používanie. Existujú dva typy bezdrôtovej myši: myš USB a myš Bluetooth. Ak myš USB využíva porty USB na fungovanie, myš Bluetooth na druhej strane používa počítačovú anténu Bluetooth na spárovanie s myšou. Už žiadne chaotické káble, už n
  • rozdiel medzi: Rozdiel medzi láskou a priateľstvom

    Rozdiel medzi láskou a priateľstvom

    Kľúčový rozdiel: "Láska" je hlboko jemná, vášnivá náklonnosť k inej osobe. Je to pocit teplej osobnej pripútanosti alebo hlbokej náklonnosti, rovnako ako u rodiča, dieťaťa alebo priateľa. Môže sa použiť aj na popísanie sexuálnej vášne alebo túžby. Priateľstvo je vzťah medzi dvomi ľuďmi na základe vzájomnej náklonnosti. Ľudia sú fascinovaní láskou. Pot
  • rozdiel medzi: Rozdiel medzi pergamenovým papierom a hliníkovou fóliou

    Rozdiel medzi pergamenovým papierom a hliníkovou fóliou

    Kľúčový rozdiel: Pergamenový papier, tiež známy ako papier na pečenie, je papier na báze celulózy, ktorý sa používa hlavne na pečenie ako náhrada za mazanie. Hliníková fólia je tenká hliníková fólia, ktorá má hrúbku menšiu ako 0, 2 mm a môže byť použitá pre rôzne veci okolo domu. Pergamenový papier a hliníkové
  • rozdiel medzi: Rozdiel medzi alergikom a dermatológa

    Rozdiel medzi alergikom a dermatológa

    Kľúčový rozdiel: Alergisti sa zaoberajú diagnostikou, liečbou a zvládaním stavov, ktoré vznikajú v dôsledku alergií, astmy alebo akéhokoľvek typu poruchy imunitného systému. Na druhej strane, dermatológ je lekár, ktorý sa stará o podmienky súvisiace s pokožkou, vlasmi a nechtami. Alergisti sú lekári,
  • rozdiel medzi: Rozdiel medzi Windows Phone 7.8 a Windows Phone 8

    Rozdiel medzi Windows Phone 7.8 a Windows Phone 8

    Kľúčový rozdiel: Windows Phone 7.8 je upgrade na sériu OS Windows Phone 7 a je k dispozícii v systéme Windows Phone 7.5. Aktualizácia systému Windows Phone 7.8 bola uvoľnená, pretože Windows Phone 7 a 7.5 sa nedokážu inovovať na systém Windows 8. Windows Phone 8 je operačný systém druhej generácie pre Windows Phone série Microsoft. Systém 8 používa ro
  • rozdiel medzi: Rozdiel medzi počítačom Abacus a počítačom

    Rozdiel medzi počítačom Abacus a počítačom

    Kľúčový rozdiel: Abakus (množný abaci alebo abacuses) je nástroj, ktorý sa používa na pomoc matematickým výpočtom. Počítač je univerzálne zariadenie, ktoré možno naprogramovať tak, aby vykonávalo konečnú sadu aritmetických alebo logických operácií. Abakus a počítač sú dve rôzne zariadenia, ktoré sa používajú na výpočty v dnešnom svete. Napriek tomu, že abakusy sú staré zar

Redakcia Choice

Rozdiel medzi infekčnými a nákazlivými

Kľúčový rozdiel: Infekčné choroby sú spôsobené mikroorganizmom, a preto môžu byť nekonečne prenesiteľné na nových jedincov. Nákazlivé choroby sú veľmi prenosné ochorenia, ktoré sa môžu rýchlo šíriť z jednej osoby na druhú kontaktom alebo v tesnej blízkosti. Nedávne vydesenie Ebola spôsobilo, že mnohí ľudia sa obávajú opustenia svojich domovov. Podobný strach sa deje počas času a