C# Methode versteckt und umgeschrieben: Detaillierte Erklärung
In C#kann die abgeleitete Klasse die Basisklassenmethode auf zwei verschiedene Arten bedienen: Methodenverbrennung und Methode umschreiben. Der Unterschied zwischen dem Verständnis dieser beiden Konzepte ist für eine effektive Wartung und Vererbung von Code wesentlich.
Methode versteckt
Wenn eine Klasse eine neue Methode der gleichen Namen wie die chinesische Foundation -Methode deklariert, es jedoch keine explizite Aussage als Umschreibungsmethode gibt, wird die Methode versteckt. Die Methode der neuen Erklärung verbirgt die Implementierung der Basisklasse effektiv und bietet eine eigene unabhängige Implementierung.
Beispiel:Wenn CLB in der Instanz der Klasse B Clb.foo () aufruft, wird die Implementierung von Klasse B und Ausgaben "1" ausgeführt. Wenn wir jedoch CLB in eine Klasse A umwandeln, greift der Anrufer auf die Basisklassenimplementierung von Foo () und Ausgaben "5" zu.
Umschreiben
<code class="language-csharp">class A { public int Foo(){ return 5;} } class B : A{ public new int Foo() { return 1;} //隐藏 }</code>
Unterscheidet sich von versteckt, schreibt die Methode die Implementierung der neuen Implementierungsmethode in der Derivatklasse neu. Dies wird durch die Verwendung des Schlüsselworts Override erreicht.
Beispiel:
Wenn die Instanz der Klasse B Clb.bar () aufruft, wird die Umschreibung der Implementierung in Klasse B und "1" ausgeführt. Das Umwandeln von CLB für die obligatorische Kategorie A wirkt sich nicht auf das Verhalten aus, da immer die Aufruf und Realität aufgerufen wird.Hauptunterschiede
<code class="language-csharp">class A { public virtual int Bar(){return 5;} } class B : A{ public override int Bar() {return 1;} //重写 }</code>
versteckt die Foundation -Methode:
verborgen in der Derivatklasse erstellt eine neue Methode, die die Implementierung der Basisklasse verbirgt. Das Umschreiben ersetzte die Verwirklichung der Basisklasse.Umschreiben erfordert Schlüsselwörter: Umschreiben muss überschreibende Schlüsselwörter verwenden, um den erwarteten Ersatz explizit anzugeben.
Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen Methodenschatten und Überschreibung in C#?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!