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 iPhone 6s i iPhone 7

    Różnica między iPhone 6s i iPhone 7

    Kluczowa różnica: iPhone 7 jest zbyt podobny do poprzedniego telefonu z serii, iPhone 6S. Mają wiele podobieństw, jednak główną różnicą między nimi jest to, że iPhone 7 jest teraz wodoszczelny, ma więcej pamięci i większą baterię, ale nie ma już 3, 5 mm gniazda dla słuchawek. Wielu twierdzi, że nowe jest lepsze, ale prawda jest taka, że ​​rzeczy nigdy nie są tak czarno-białe. Podobnie jest w przypadku
  • różnica pomiędzy: Różnica między wiązaniem jonowym i kowalencyjnym

    Różnica między wiązaniem jonowym i kowalencyjnym

    Kluczowa różnica: Wiązanie jonowe jest wiązaniem chemicznym między dwoma odmiennymi (tj. Metalem i niemetalicznymi) atomami, w których jeden atom oddaje elektron drugiemu. Wiązanie kowalencyjne jest kolejnym silnym wiązaniem chemicznym. Odbywają się podobne atomy (tj. Dwa niemetale). W wiązaniu kowalencyjnym dwa atomy łączą się, by dzielić elektron, zamiast atomu zabierającego elektron od drugiego. W celu utworzen
  • różnica pomiędzy: Różnica między atomem a cząsteczką

    Różnica między atomem a cząsteczką

    Kluczowa różnica: Atomy są podstawowymi jednostkami, z których składa się cała materia. Atomy są małe, o szerokości od 0, 1 do 0, 5 nanometra. Każdy atom dowolnego pierwiastka składa się z protonów, neutronów i elektronów. Atomy różnych elementów łączą się, tworząc cząsteczki. Dzieje się tak poprzez
  • różnica pomiędzy: Różnica między weganinem i wegetarianinem

    Różnica między weganinem i wegetarianinem

    Kluczowa różnica: dieta wegańska to osoba, która nie spożywa żadnych produktów pochodzenia zwierzęcego, w tym mięsa, drobiu, ryb, jaj, mleka i jaj. Weganizm jest praktyką powstrzymywania się od używania jakichkolwiek produktów pochodzenia zwierzęcego, w tym spożywania ich. Wegetarianie to w zasadzie ludzie, którzy powstrzymują się od jedzenia mięsa lub drobiu i od warzyw zależy energia i odżywianie. Istnieją trzy różne
  • różnica pomiędzy: Różnica między Samsung Galaxy Mega 6.3 i Samsung Galaxy S3

    Różnica między Samsung Galaxy Mega 6.3 i Samsung Galaxy S3

    Kluczowa różnica: Samsung rozszerzył swoją ofertę w kategorii phablet, wprowadzając Samsung Galaxy Mega 5.8 i Samsung Galaxy Mega 6.3. Samsung Galaxy Mega 6.3 został nazwany tak ze względu na pojemnościowy ekran dotykowy TFT o przekątnej 6, 3 cala i rozdzielczości 720 x 1280 pikseli. Telefon jest zasilany dwurdzeniowym procesorem Cortex-A15 1, 7 GHz z 1, 5 GB pamięci RAM. Galaxy S3
  • różnica pomiędzy: Różnica między Londynem a City of London

    Różnica między Londynem a City of London

    Kluczowa różnica: City of London to miasto, które ma własne prawa i przepisy i znajduje się w Londynie. Londyn jest stolicą Anglii. Różnica między Londynem a Londynem jest nieco trudna do wyjaśnienia. Trzeba dokładnie zrozumieć, jak rozwinęło się miasto, aby zrozumieć, dlaczego w Zjednoczonym Królestwie są dwa miasta o nazwie Londyn. Zaczyna się - ja
  • różnica pomiędzy: Różnica między Meteorem a Meteoroidem

    Różnica między Meteorem a Meteoroidem

    Kluczowa różnica: Meteor jest błyskiem światła, które następuje po kawałku międzyplanetarnych śmieci, gdy wchodzi w naszą atmosferę. Często odnosimy się do meteoru jako spadającej gwiazdy lub spadającej gwiazdy. Meteoroid to jakikolwiek gruz w Układzie Słonecznym. Wielkość meteoroidu może wahać się od wielkości ziaren piasku do wielkości bouldera o wadze 220 funtów (100 kg). Meteor jest błyskiem świ
  • różnica pomiędzy: Różnica między supermarketem a dyskontem

    Różnica między supermarketem a dyskontem

    Kluczowa różnica: Supermarkety to duże samoobsługowe sklepy spożywcze, które oferują klientom różnorodne produkty spożywcze i artykuły gospodarstwa domowego. Towar jest zorganizowany w zorganizowany korytarz, gdzie każda nawa jest ponumerowana lub opatrzona etykietami i zawiera tylko podobne towary. Sklepy dys
  • różnica pomiędzy: Różnica między dużo i więcej

    Różnica między dużo i więcej

    Kluczowa różnica: "Wiele" jest używane głównie z rzeczownikami niepoliczalnymi. Niezliczone rzeczowniki są również prawie zawsze pojedyncze, np. Sól, ciasto, badania itd. Ponadto, w przypadkach, w których policzalne i niepoliczalne nie mają zastosowania, "dużo" jest używane tylko w pytaniach i negatywnych zdaniach, a nie pozytywnych lub potwierdzających. "Więcej

Wybór Redakcji

Różnica między Międzynarodowym Dniem Mężczyzn a Międzynarodowym Dniem Kobiet

Kluczowa różnica: Międzynarodowy Dzień Mężczyzn to dzień, w którym uczczono i upamiętniono mężczyzn w społeczeństwie, którzy pracowali nad wprowadzeniem zmiany. Międzynarodowy Dzień Kobiet to dzień upamiętniający kobiety za ich sukces i chwalący ich za cierpienia lat trudnych i nierówności płci. Międzynarodowy Dzień