Różnica między metodą wirtualną a abstrakcyjną

Kluczowa różnica: Metody abstrakcyjne to metody, które są zadeklarowane, ale nie mają żadnej implementacji. Wirtualne metody są stosowane do implementacji polimorfizmu opartego na typie. Klasa pochodna ma elastyczność ponownego wdrażania metody wirtualnej klasy bazowej za pomocą słowa kluczowego "zastąp".

W języku C # słowo kluczowe abstrakcyjne może być używane zarówno z klasami, jak i metodami. Metody abstrakcyjne to metody, które nie mają żadnej formy realizacji. Jednak logika implementacji jest uzyskiwana przez nie abstrakcyjne klasy wyprowadzone z nich. Osiąga się to przez przesłonięcie tej metody. Ze względu na brak faktycznej realizacji, treść metody pozostaje pusta. Należy zauważyć, że deklaracja metody abstrakcyjnej jest możliwa tylko w klasie abstrakcyjnej. Klasy, których nie można zainicjować, są znane jako klasy abstrakcyjne. Klasa dziedzicząca z klasy abstrakcyjnej musi implementować wszystkie metody zadeklarowane jako abstrakcyjne w klasie abstrakcyjnej.

Na przykład -

public abstract class exampleAbstractClass

{

public abstract void exampleabstractMethod ();

public virtual void nonAbstractMethod ()

{

Console.WriteLine ("Implementacja jest zdefiniowana w metodzie");

}

class normalNonAbstractClass: exampleAbstractClass

{

publiczne nadpisanie void exampleabstractMethod ()

{

Console.WriteLine ("Przesłanianie metody exampleabstractMethod klasy exampleAbstractClass");

}

}

Wirtualny jest również słowem kluczowym, które jest związane z modyfikacją metody, właściwości, indeksu lub deklaracji zdarzenia. Użycie tego słowa kluczowego umożliwia modyfikację zadeklarowanej jednostki w klasie pochodnej. W tym przykładzie klasa pochodna zastąpiła metodę wirtualną zadeklarowaną w klasie bazowej.

klasa podstawowa

{

publiczny wirtualny void Test ()

{

Console.WriteLine ("Base.Test");

}

}

class Derived: Base

{

publiczne nadpisanie void Test ()

{

Console.WriteLine ("Derived.Test");

}

}

Wirtualne metody są stosowane do implementacji polimorfizmu opartego na typie. Klasa pochodna ma elastyczność ponownego wdrażania metody wirtualnej klasy bazowej za pomocą słowa kluczowego override. Zarówno wirtualne, jak i abstrakcyjne nie mogą być używane razem z modyfikatorami statycznymi lub wirtualnymi lub nadpisującymi.

Porównanie metody wirtualnej i abstrakcyjnej:

Metoda wirtualna

Metoda abstrakcyjna

Definicja

Wirtualne metody są stosowane do implementacji polimorfizmu opartego na typie.

Metody abstrakcyjne to metody, które są zadeklarowane, ale nie mają żadnej implementacji.

Realizacja

Tak, może mieć implementację

Nie, nie może mieć żadnej implementacji

Trzeba nadpisać

Nieobowiązkowe

Obowiązkowy

Słowo kluczowe używane do odróżnienia go od innych typów metod

Wirtualny

Abstrakcyjny

Klasa

Klasa zawierająca wirtualną metodę może być utworzona.

Klasa zawierająca metodę abstrakcyjną nie może być utworzona. To może być odziedziczone.

Zakres

Zakres metody wirtualnej tylko dla członków.

Zakres metody abstrakcyjnej dla członków i klas.

Metoda do wykonania (typ klasy obiektu bazowego)

Implementacja nadrzędna będzie wywoływana tylko w przypadku, gdy żadna implementacja nie jest zapewniona w konkretnej klasie.

Konkretna realizacja

Metoda do wykonania (typ klasy obiekt-beton)

Konkretna realizacja

Konkretna realizacja

Zalecane

Podobne Artykuły

  • różnica pomiędzy: Różnica między Gopher i Mole

    Różnica między Gopher i Mole

    Kluczowa różnica: Gophers to ssaki należące do rodziny Sciuridae. Gopher jest terminem parasolowym opisującym wiele gatunków małych pożyczkowych gryzoni, w tym suseł kieszonkowy (znany również jako prawdziwy świstaki), wiewiórka ziemna, niektóre gatunki psów preriowych i wiewiórka Richardsona. Mole to także
  • różnica pomiędzy: Różnica między znakami a objawami

    Różnica między znakami a objawami

    Kluczowa różnica: Znaki są fizyczną manifestacją choroby, urazu lub choroby. Jest obiektywny, co oznacza, że ​​można go zobaczyć i zmierzyć, zwykle przez lekarza lub pielęgniarkę. Objawy są natomiast odczuwalne tylko przez pacjenta. Są to rzeczy, które pacjent doświadcza w związku z chorobą, urazem lub chorobą. Należy je opisać lek
  • różnica pomiędzy: Różnica między identyfikatorem URI a adresem URL

    Różnica między identyfikatorem URI a adresem URL

    Kluczowa różnica: URI (Uniform Resource Identifier) ​​to ciąg znaków służący do identyfikacji nazwy lub zasobu. Może być dalej klasyfikowany jako URL i URN. URL to ciąg znaków, które wskazują adres zasobu. Nawet z boomem komputerowym wielu ludzi wciąż jeszcze nie dostało żargonu związanego z komputerami. Istnieje wiele słów,
  • różnica pomiędzy: Różnica między Gwarancją a Gwarancją

    Różnica między Gwarancją a Gwarancją

    Kluczowa różnica: Zasadniczo zarówno "gwarancja", jak i "gwarancja" mają to samo znaczenie. "Gwarancja" to rzeczownik, podczas gdy "gwarancja" może być używana zarówno jako rzeczownik, jak i czasownik. Zasadniczo "gwarancja" i "gwarancja" mają to samo znaczenie, z niewielkimi różnicami. Oba oznac
  • różnica pomiędzy: Różnica między tańcem Kathak i Kathakali

    Różnica między tańcem Kathak i Kathakali

    Kluczowa różnica: Kathak i Kathakali to dwa różne tańce wywodzące się z Indii. Kathak rozwinęła się w północnych Indiach, a Kathakali rozwinął się na południu. Obie koncentrują się na opowiadaniu historii, ale różnią się rodzajami muzyki, do której tańczą i ich kostiumami. Kathak i Kathakali to dwa różne tańce wywodzące się z Indii. Są częścią dziesięciu Indian
  • różnica pomiędzy: Różnica między SP a DP Androidem

    Różnica między SP a DP Androidem

    Kluczowa różnica: SP i DP definiują dwie różne jednostki używane w Androidzie do definiowania właściwości układu, takich jak marginesy, rozmiar tekstu, itp. SP oznacza niezależne od skali piksele, a DP to piksele niezależne od gęstości. SP i DP są cicho takie same, z tym wyjątkiem, że SP ma dodatkowy współczynnik skalowania w oparciu o preferowany rozmiar tekstu użytkownika. SP musi być używan
  • różnica pomiędzy: Różnica między GMT i BST

    Różnica między GMT i BST

    Kluczowa różnica: w Wielkiej Brytanii GMT jest oficjalnym okresem zimowym, podczas gdy BST jest oficjalnym czasem lata. Podczas British Summer Time (BST) zegary są przesuwane do przodu latem i zimą. Strefy czasowe to regiony na ziemi, podzielone wzdłuż długości geograficznej, które wykorzystują ten sam standardowy czas. 40 różny
  • różnica pomiędzy: Różnica między wieloma a większością

    Różnica między wieloma a większością

    Kluczowa różnica: "Wiele" i "większość" to dwa terminy używane do oznaczenia ilości. Jednak oba terminy różnią się sposobem, w jaki można je wykorzystać. Technicznie "większość" to więcej niż "wiele". Z drugiej strony "Most" jest zwykle używany do odniesienia się do czegoś, gdy jest "w największym stopniu" lub "w większości przypadków." Dlatego można pow
  • różnica pomiędzy: Różnica między papierem woskowanym a papierem do pieczenia

    Różnica między papierem woskowanym a papierem do pieczenia

    Kluczowa różnica: Papier woskowany jest również znany jako papier parafinowy, jest papierem odpornym na wilgoć, który jest pokryty warstwą wosku, aby uczynić go odpornym na wilgoć. Papier do pieczenia, znany również jako papier pergaminowy, jest papierem na bazie celulozy, który jest stosowany głównie w piekarnictwie jako substytut smarowania. Papier wosko

Wybór Redakcji

Różnica między drewnem sosnowym a drewnem gumowym

Kluczowa różnica: Sosny są uważane za drewno iglaste, lekkie i tańsze. Ze względu na swoją niewielką masę, sosna jest dość popularna w przypadku mebli pokojowych, takich jak szafy, łóżka, ponieważ znacznie łatwiej jest przenosić te meble. Drewno kauczukowe jest w zasadzie drewnem pochodzącym z drzewa kauczukowego, w szczególności z drzewa gumowego Pará. Drzewo gumowe Pará