Unterschied zwischen virtueller und abstrakter Methode | Unterschied Zwischen | natapa.org

Unterschied zwischen virtueller und abstrakter Methode




Hauptunterschied: Abstrakte Methoden sind die Methoden, die deklariert werden, aber keine Implementierung haben. Virtuelle Methoden werden für eine Implementierung des typbasierten Polymorphismus verwendet. Die abgeleitete Klasse hat die Flexibilität, die virtuelle Methode der Basisklasse mithilfe des Schlüsselworts 'override' erneut zu implementieren.

In C # kann das abstrakte Schlüsselwort sowohl mit Klassen als auch mit Methoden verwendet werden. Abstrakte Methoden sind solche Methoden, denen jegliche Implementierung fehlt. Die Implementierungslogik wird jedoch durch die von ihnen abgeleiteten nicht abstrakten Klassen erhalten. Dies wird erreicht, indem diese Methode überschrieben wird. Aufgrund der fehlenden Implementierung bleibt der Rumpf der Methode leer. Es ist wichtig zu beachten, dass die Deklaration einer abstrakten Methode nur in einer abstrakten Klasse möglich ist. Die Klassen, die nicht initialisiert werden können, werden als abstrakte Klassen bezeichnet. Eine Klasse, die von einer abstrakten Klasse erbt, muss alle als abstrakt deklarierten Methoden in der abstrakten Klasse implementieren.

Zum Beispiel -

Beispiel einer öffentlichen abstrakten KlasseAbstractClass

{

öffentliche abstrakte Void beispielhaftemethode ();

public virtual void nonAbstractMethod ()

{

Console.WriteLine ("Implementierung ist in der Methode definiert");

}

Klasse normalNonAbstractClass: exampleAbstractClass

{

public override void beispielszusammenfassungMethode ()

{

Console.WriteLine ("Überschreibe die Beispielmethode der Klasse exampleAbstractClass");

}

}

Virtuell ist auch ein Schlüsselwort, das der Änderung einer Methode, Eigenschaft, eines Indexers oder einer Ereignisdeklaration zugeordnet ist. Die Verwendung dieses Schlüsselworts ermöglicht die Änderung der deklarierten Entität in einer abgeleiteten Klasse. In diesem Beispiel hat die abgeleitete Klasse die in der Basisklasse deklarierte virtuelle Methode überschrieben.

Klasse Basis

{

öffentlicher virtueller void Test ()

{

Console.WriteLine ("Base.Test");

}

}

Klasse abgeleitet: Basis

{

öffentliche Überschreibung ungültig Test ()

{

Console.WriteLine ("Derived.Test");

}

}

Virtuelle Methoden werden für eine Implementierung des typbasierten Polymorphismus verwendet. Die abgeleitete Klasse bietet die Flexibilität, die virtuelle Methode der Basisklasse mithilfe des Schlüsselworts override erneut zu implementieren. Sowohl virtuell als auch abstrakt können nicht zusammen mit statischen oder virtuellen Modifizierern verwendet werden.

Vergleich zwischen virtueller und abstrakter Methode:

Virtuelle Methode

Abstrakte Methode

Definition

Virtuelle Methoden werden für eine Implementierung des typbasierten Polymorphismus verwendet.

Abstrakte Methoden sind die Methoden, die deklariert werden, aber keine Implementierung haben.

Implementierung

Ja, kann implementiert werden

Nein, kann keine Implementierung haben

Muss überschrieben werden

Nicht verpflichtend

verpflichtend

Schlüsselwort, das verwendet wird, um es von anderen Arten von Methoden zu unterscheiden

Virtuell

Abstrakt

Klasse

Klassen, die eine virtuelle Methode enthalten, können instanziiert werden.

Klasse, die eine abstrakte Methode enthält, kann nicht instanziiert werden. Es kann nur vererbt werden.

Umfang

Gültigkeitsbereich der virtuellen Methode nur für Mitglieder.

Umfang der abstrakten Methode für Mitglieder und Klassen.

Auszuführende Methode (Objektbasisklassentyp)

Die übergeordnete Implementierung wird nur dann aufgerufen, wenn in der konkreten Klasse keine Implementierung bereitgestellt wird.

Konkrete Umsetzung

Auszuführende Methode (objektbetonender Klassentyp)

Konkrete Umsetzung

Konkrete Umsetzung

Bilder mit freundlicher Genehmigung: aspdotnet-sekhar.blogspot.com

Vorheriger Artikel

Unterschied zwischen Duft und Parfüm

Nächster Artikel

Unterschied zwischen kontinentalem und italienischem Essen