Verschil tussen virtuele en abstracte methode

Belangrijkste verschil: abstracte methoden zijn de methoden die worden gedeclareerd maar geen enkele implementatie hebben. Virtuele methoden worden gebruikt voor een implementatie van het type-gebaseerde polymorfisme. De afgeleide klasse heeft de flexibiliteit om de virtuele methode van de basisklasse opnieuw te implementeren met behulp van het sleutelwoord 'negeren'.

In C # kan het abstracte sleutelwoord worden gebruikt met zowel klassen als methoden. Abstracte methoden zijn die methoden die elke vorm van implementatie missen. De implementatielogica wordt echter verkregen door de niet-abstracte klassen die daarvan zijn afgeleid. Dit wordt bereikt door die methode te negeren. Vanwege het ontbreken van daadwerkelijke implementatie, blijft de body van de methode leeg. Het is belangrijk op te merken dat de verklaring van een abstracte methode alleen mogelijk is in een abstracte klasse. De klassen die niet kunnen worden geïnitialiseerd, worden ook wel abstracte klassen genoemd. Een klasse die erft van een abstracte klasse moet alle methoden implementeren die als abstract zijn gedeclareerd in de abstracte klasse.

Bijvoorbeeld -

openbare abstracte klasse exampleAbstractClass

{

public abstract void exampleabstractMethod ();

openbare virtuele leegte nonAbstractMethod ()

{

Console.WriteLine ("Implementatie is gedefinieerd in de methode");

}

class normalNonAbstractClass: exampleAbstractClass

{

openbare override void exampleabstractMethod ()

{

Console.WriteLine ("De voorbeeldbegrip Methode van de klasse exampleAbstractClass overschrijven");

}

}

Virtueel is ook een sleutelwoord dat is gekoppeld aan de wijziging van een methode, eigenschap, indexeerder of gebeurtenisverklaring. Het gebruik van dit sleutelwoord staat de wijziging van de gedeclareerde entiteit in een afgeleide klasse toe. In dit voorbeeld heeft de afgeleide klasse de virtuele methode uitgeschakeld die in de basisklasse is gedeclareerd.

klasse Base

{

openbare virtuele leegte Test ()

{

Console.WriteLine ( "Base.Test");

}

}

klasse Afgeleid: basis

{

openbare override void Test ()

{

Console.WriteLine ( "Derived.Test");

}

}

Virtuele methoden worden gebruikt voor een implementatie van het type-gebaseerde polymorfisme. De afgeleide klasse heeft de flexibiliteit om de virtuele methode van de basisklasse opnieuw te implementeren met behulp van het override-zoekwoord. Zowel virtueel als abstract kunnen niet worden gebruikt, samen met statische of virtuele of negeer modifiers.

Vergelijking tussen virtuele en abstracte methode:

Virtuele methode

Abstracte methode

Definitie

Virtuele methoden worden gebruikt voor een implementatie van het type-gebaseerde polymorfisme.

Abstracte methoden zijn de methoden die worden gedeclareerd maar geen enkele implementatie hebben.

Implementatie

Ja, kan implementatie hebben

Nee, ik kan geen enkele implementatie hebben

Moet worden overschreven

Niet verplicht

Verplicht

Zoekwoord dat wordt gebruikt om het te onderscheiden van andere typen methoden

virtueel

Abstract

Klasse

Klasse met virtuele methode kan worden geïnstantieerd.

Klasse met abstracte methode kan niet worden geïnstantieerd. Het kan alleen worden overgenomen.

strekking

Virtuele methode alleen voor leden.

De reikwijdte van de abstracte methode voor leden en klassen.

Uit te voeren methode (klasse van objectbasisklasse)

Ouderimplementatie wordt alleen aangeroepen in het geval dat er geen implementatie is in de concrete klasse.

Concrete implementatie

Uit te voeren methode (klasse van het object-betonklasse)

Concrete implementatie

Concrete implementatie

Aanbevolen

Gerelateerde Artikelen

  • populaire vergelijkingen: Verschil tussen IFSC-code en branchecode

    Verschil tussen IFSC-code en branchecode

    Belangrijkste verschil: in de context van het Indiase bankieren verwijzen beide naar unieke codes. IFSC staat voor Indiase financiële systeemcode. IFSC-code bestaat uit elf tekens en wordt gebruikt om de bank en de bankfiliaal te identificeren. Een filiaalcode is een nummer dat dient als een identificerende code voor het bankfiliaal.
  • populaire vergelijkingen: Verschil tussen baby en kind

    Verschil tussen baby en kind

    Belangrijk verschil : het woord 'baby' betekent elk kind van de geboorte tot de leeftijd van 4, terwijl het woord 'kind' verwijst naar elk kind van drie maanden tot twaalf jaar. Een van de meest bijzondere momenten in het leven is wanneer een baby naar je kijkt, of je grote vinger stevig dichtknijpt met zijn kleintjes, of naar je glimlacht als je er grappige gezichten van maakt
  • populaire vergelijkingen: Verschil tussen Idiom en Expression

    Verschil tussen Idiom en Expression

    Belangrijk verschil : volgens definitie is een 'idioom' een uitdrukking gemaakt door een combinatie van woorden, waarvan de betekenis anders is dan de letterlijke betekenis van de afzonderlijke woorden, terwijl een 'uitdrukking' wordt gedefinieerd als een specifieke manier of manier waarop ideeën worden gebruikt worden uitgedrukt door woorden.
  • populaire vergelijkingen: Verschil tussen IMAX 3D en 3D

    Verschil tussen IMAX 3D en 3D

    Belangrijk verschil: het verschil tussen beide is de beeld- en theaterkwaliteit, waarbij IMAX 3D-theater een onovertroffen helderheid en helderheid biedt in 3D-beelden, terwijl de traditionele 3D-theaters beelden bieden die naar de kijker toe of van zich af lijken te bewegen. Tegenwoordig zijn er 2D-theaters, die de 2-dimensionale beeldresoluties bieden, en er zijn 3D-theaters waarvan bekend is dat ze de 3D-effecten en resolutie bieden aan de kijkers
  • populaire vergelijkingen: Verschil tussen Business Class en First Class Flights

    Verschil tussen Business Class en First Class Flights

    Belangrijkste verschil: Business Class biedt een hoger serviceniveau dan de economy class. Er zijn minder zitplaatsen bij elkaar, twee in plaats van drie. De stoelen zijn comfortabeler en hebben een hogere graad van hoek (ongeveer 170 graden). First Class wordt beschouwd als de meest luxueuze klasse van reizen
  • populaire vergelijkingen: Verschil tussen Swift-code en ABA-nummer

    Verschil tussen Swift-code en ABA-nummer

    Belangrijkste verschil: SWIFT staat voor Society for Worldwide Inter-bank Financial Telecommunication. SWIFT-code wordt gebruikt als een bankidentificatiecode in geval van internationale transacties. SWIFT-code is een code die is toegewezen aan een instelling die optreedt als de identiteit van de instelling op de buitenlandse markt
  • populaire vergelijkingen: Verschil tussen roeping en bezetting

    Verschil tussen roeping en bezetting

    Belangrijkste verschil: roeping en bezetting zijn synoniemen, verwijzend naar het werk op basis waarvan men zijn of haar levensonderhoud verdient. Roeping definieert specifiek de loopbaan of het beroep dat geschikt wordt geacht in overeenstemming met de kwalificaties en persoonlijke neigingen van de persoon
  • populaire vergelijkingen: Verschil tussen homoseksueel en biseksueel

    Verschil tussen homoseksueel en biseksueel

    Belangrijkste verschil: de term 'homoseksueel' werd voor het eerst gebruikt door Victoriaanse wetenschappers die aantrekkingskracht op hetzelfde geslacht en seksueel gedrag beschouwden als symptomen van psychische stoornissen of morele tekortkomingen. Biseksueel is een term die wordt gebruikt voor mensen die zich seksueel aangetrokken voelen tot zowel mannen als vrouwen
  • populaire vergelijkingen: Verschil tussen Cricket en Baseball

    Verschil tussen Cricket en Baseball

    Belangrijkste verschil: Cricket is een sport die wordt gespeeld tussen twee teams van 11 spelers, elk op een rechthoekige 22-meter lange pitch. Honkbal bestaat uit twee teams met elk negen spelers die om beurten batting / hitting en fielding / pitching spelen. Deze spellen verschillen in termen van regels, voorschriften, gameplay, vleermuis, bal, etc

Editor'S Choice

Het verschil tussen Caramel en Butterscotch

Belangrijkste verschil: Caramel is een banketbakkersproduct dat wordt gemaakt door het verwarmen van een verscheidenheid aan suikers. Butterscotch is een banketbakkersproduct dat wordt gemaakt door het verwarmen van bruine suiker en boter. Caramel en butterscotch zijn twee zoete toppings, snoepjes of suikertraktaties die populair zijn over de hele wereld