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

  • populárne porovnania: Rozdiel medzi jedovatými a jedovatými

    Rozdiel medzi jedovatými a jedovatými

    Kľúčový rozdiel: Venózne organizmy majú špeciálnu žľaza a časť tela, ako sú zuby, ktoré sa používajú na podanie toxínu do tela obete. Jedovaté stvorenie, organizmus alebo rastlina nemajú špeciálne žľazy na produkciu tohto toxínu, sú produkované ich normálnymi telesnými procesmi. Termíny "jedovaté"
  • populárne porovnania: Rozdiel medzi strojom a motorom

    Rozdiel medzi strojom a motorom

    Hlavný rozdiel: Stroje spotrebúvajú energiu vyrobenú motormi. Slovo "stroj" je odvodené z latinského slova "machina". Rovnaký význam teraz vyjadruje odvodená termínová machinácia. Myšlienku jednoduchého stroja vznikol grécky filozof Archimedes . Okrem toho gréckí filozofi definovali klasické päť jednoduchých strojov, ktoré boli použité na hrubé vypočítanie mechanických výhod. Heron Alexandrie vo svojej
  • populárne porovnania: Rozdiel medzi Phonics a syntetická Phonics

    Rozdiel medzi Phonics a syntetická Phonics

    Kľúčový rozdiel: Phonic je efektívna metóda používaná na výučbu zručností čítania. Využíva vzťah medzi abecedami a zvukov, ktoré vytvorili. Syntetická Phonika je prístup, pri ktorom sa najprv vyučujú zvuky písmen a kombinácií písmen, a neskôr sa metóda učí tvoriť úplné slová. Syntetická Phonika je teda jedným
  • populárne porovnania: Rozdiel medzi baktériami a vírusom

    Rozdiel medzi baktériami a vírusom

    Kľúčový rozdiel: Baktérie sú jednobunkové a prokaryotické organizmy. Replikujú sa asexuálne. Môžu byť škodlivé, rovnako ako prínosné; závisí od druhu baktérií. Na druhej strane vírusy sú neživé patogény a sú acelulárne. Virus tiež potrebuje hostiteľskú bunku na reprodukciu. Väčšina vírusov nemá žiadny u
  • populárne porovnania: Rozdiel medzi RISC a CISC

    Rozdiel medzi RISC a CISC

    Hlavný rozdiel : Hlavný rozdiel medzi RISC a CISC je v počte výpočtových cyklov, ktoré každý z ich pokynov prijíma. Rozdiel v počte cyklov je založený na zložitosti a cieli ich pokynov. Termín RISC znamená "Počítač so zmenšeným počtom inštrukcií". Ide o stratégiu návrhu CPU založenú na jednoduchých inštrukciách a rýchlom výkone. RISC je malý alebo zmenšený súb
  • populárne porovnania: Rozdiel medzi iPhone 5S a iPhone 5C

    Rozdiel medzi iPhone 5S a iPhone 5C

    Hlavný rozdiel: iPhone 5S je najnovší smartphone od spoločnosti Apple. Je vybavený Apple OS 7 a je k dispozícii v 3 farbách: biela, čierna a zlatá. IPhone 5C je levnejšou variantou zariadenia iPhone 5S od spoločnosti Apple Inc. 10. septembra 2013 oznámila spoločnosť Apple najnovšie modely telefónov: iPhone 5S a iPhone 5C. Vedúci pracovn
  • populárne porovnania: Rozdiel medzi Dubajom a Spojenými arabskými emirátmi

    Rozdiel medzi Dubajom a Spojenými arabskými emirátmi

    Kľúčový rozdiel: Dubaj je mesto v Spojených arabských emirátoch a nachádza sa v rovnakom emiráte, zatiaľ čo Spojené arabské emiráty (SAE) sú arabské krajiny, ktoré sa nachádzajú na juhovýchode Arabského polostrova v Perzskom zálive a pozostávajú zo siedmich emirates vrátane Dubaja. Niekedy sa uvádza, že D
  • populárne porovnania: Rozdiel medzi akné a vady

    Rozdiel medzi akné a vady

    Kľúčový rozdiel: Akné je ochorenie kože, ktoré je charakterizované prítomnosťou pupienkov, čiernych hláv a bielych hláv. Poškodenie je stav pokožky, pri ktorej sa pokožka odfarbí alebo tmavšia. Mnoho ľudí považuje akné aj vady za rovnaké. Obaja sa však odvolávajú na rôzne veci. Akné je choroba alebo por
  • populárne porovnania: Rozdiel medzi Aikido a Hapkido

    Rozdiel medzi Aikido a Hapkido

    Hlavný rozdiel: Aikido je japonský, zatiaľ čo Hapkido je kórejská forma bojového umenia. "Aikido" je japonské formy bojového umenia, ktoré vyvinula Morihei Ueshiba (1883 - 1969) v roku 1942. Je to forma sebaobrany, v ktorej sa učiaci učia veľké pohyby a obracania, aby ich chránili. Názov "a

Redakcia Choice

Rozdiel medzi Priezvisko a Priezvisko

Kľúčový rozdiel: Priezvisko je známe aj ako priezvisko. Priezvisko je priezvisko, ktoré osoba zdieľa s ostatnými rodinnými príslušníkmi. Všeobecne sa prechádza z jednej generácie na druhú. Priezvisko tiež všeobecne označuje priezvisko. Vo väčšine spoločností je priezvisko, ktoré nasleduje po prvom mena. Táto logika určovania p