Heim >Backend-Entwicklung >C++ >Überschreiben oder Ausblenden in C#: Was ist der Unterschied?
Methodenüberschreiben und Methodenverstecken in C#
In C# sind das Überschreiben und Ausblenden von Methoden zwei verschiedene Mechanismen zum Ändern geerbter Methoden.
Methodenüberschreibung
Das Überschreiben von Methoden umfasst das Erstellen einer virtuellen Methode in der Basisklasse und die Neudefinition ihrer Implementierung in der abgeleiteten Klasse. Dadurch können abgeleitete Klassen spezifischere oder modifizierte Versionen von Methoden bereitstellen und dabei dieselben Methodennamen und Parameter beibehalten.
Methodenüberschreibung wird in den folgenden Situationen verwendet:
override
in Methodendeklarationen in abgeleiteten Klassen. Methodenausblenden
Beim Ausblenden von Methoden wird eine neue Methode (neu) mit demselben Namen und denselben Parametern wie die Basisklassenmethode erstellt. Im Gegensatz zum Überschreiben von Methoden wird beim Ausblenden von Methoden eine völlig neue Methode in der abgeleiteten Klasse erstellt und die Methode der Basisklasse nicht geändert.
Methodenverstecken wird in den folgenden Situationen verwendet:
new
in Methodendeklarationen in abgeleiteten Klassen. Praktische Anwendung
Methodenüberschreibung:
Methodenausblenden:
Beispiel
Das folgende Beispiel demonstriert das Überschreiben und Ausblenden von Methoden:
<code class="language-csharp">class Animal { public virtual void MakeSound() { Console.WriteLine("Generic animal sound"); } } class Dog : Animal { public override void MakeSound() { Console.WriteLine("Bark"); } public new void Run() // 方法隐藏 { Console.WriteLine("Dog running"); } }</code>
In diesem Beispiel wird die Methode MakeSound
in der Klasse Dog
überschrieben, um eine konkrete Implementierung bereitzustellen. Die Run
-Methode wird ausgeblendet und eine neue Methode wird in der Dog
-Klasse erstellt.
Das obige ist der detaillierte Inhalt vonÜberschreiben oder Ausblenden in C#: Was ist der Unterschied?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!