Heim >Backend-Entwicklung >C++ >Was ist der Unterschied zwischen 'New' und 'Override' in C# inheritanz?
c# Vererbung: Verständnis new
und override
In C# Vererbung bieten die Schlüsselwörter new
und override
unterschiedliche Möglichkeiten zur Verwaltung des Methodenverhaltens in abgeleiteten Klassen. Diese Erklärung verdeutlicht ihre Unterschiede und ihre angemessene Verwendung.
new
Modifikator: Definieren einer separaten Methode
Mit dem Modifikator new
ermöglicht es einer abgeleiteten Klasse, eine Methode mit demselben Namen wie eine Methode in ihrer Basisklasse einzuführen. Entscheidend ist, dass dieses die Basisklassenmethode nicht überschreibt. Stattdessen erzeugt es eine völlig unabhängige Methode.
Beispiel:
<code class="language-csharp">public class BaseClass { public void MyMethod() { Console.WriteLine("BaseClass Method"); } } public class DerivedClass : BaseClass { public new void MyMethod() { Console.WriteLine("DerivedClass Method"); } }</code>Hier ist
eine eigenständige Methode. Das Aufrufen von DerivedClass.MyMethod()
auf einer MyMethod()
-Stanz führt die Version der abgeleiteten Klasse aus; Wenn Sie es auf einer DerivedClass
-Schunierung anrufen, wird die Version der Basisklasse ausgeführt. BaseClass
Modifikator: Ersetzen einer virtuellen Methode override
-Modifikator wird verwendet, um die Implementierung einer override
-Methode aus der Basisklasse zu ersetzen. Die Basisklassenmethode muss als (oder ) deklariert werden. virtual
stellt sicher, dass die Version der abgeleiteten Klasse aufgerufen wird, wenn die Methode auf einer Instanz der abgeleiteten Klasse aufgerufen wird. abstract
override
In diesem Fall überschreibt
<code class="language-csharp">public class BaseClass { public virtual void MyMethod() { Console.WriteLine("BaseClass Method"); } } public class DerivedClass : BaseClass { public override void MyMethod() { Console.WriteLine("DerivedClass Method"); } }</code>
. Rufen Sie DerivedClass.MyMethod()
auf einer BaseClass.MyMethod()
Instanz MyMethod()
immer DerivedClass
die -Version aus.
DerivedClass
Wann verwendet jeder Modifikator: Verwenden Sie Verwenden Sie Durch das Verständnis dieser Unterscheidungen können Sie Vererbung und Polymorphismus in Ihren C# -Anwendungen effektiv verwenden.
Feature
Methodenerstellung
erstellt eine völlig neue Methode
ersetzt eine vorhandene virtuelle Methode
Vererbung
bricht die Vererbungskette für die Methode
behält die Vererbungskette bei
Basisklassenmethode
Basisklassenmethode bleibt nicht betroffen
Basisklassenmethode muss virtuell/abstrakt sein
new
, wenn Sie eine vollständig separate Methode in der abgeleiteten Klasse wünschen, auch wenn sie einen Namen mit einer Methode in der Basisklasse teilt. Dies ist nützlich, um unbeabsichtigte Übergeordnete und Aufrechterhaltung einer unterschiedlichen Funktionalität zu vermeiden. override
, wenn Sie beabsichtigen, das Verhalten einer in der Basisklasse definierten virtuellen Methode zu erweitern oder zu ändern, wodurch eine spezielle Implementierung innerhalb der abgeleiteten Klasse bereitgestellt wird und gleichzeitig die Vererbungsbeziehung für diese spezifische Methode aufrechterhalten wird.
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen 'New' und 'Override' in C# inheritanz?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!