Heim > Backend-Entwicklung > C++ > Überschreiben oder Ausblenden in C#: Was ist der Unterschied?

Überschreiben oder Ausblenden in C#: Was ist der Unterschied?

Mary-Kate Olsen
Freigeben: 2025-01-18 08:32:09
Original
118 Leute haben es durchsucht

Overriding vs. Hiding in C#: What's the Difference?

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:

  • Sie möchten, dass die abgeleitete Klasse benutzerdefinierte Implementierungen von Methoden bereitstellt, die von der Basisklasse geerbt wurden.
  • Basisklassenmethoden sind als virtuell gekennzeichnet.
  • Verwenden Sie das Schlüsselwort 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:

  • Sie möchten in der abgeleiteten Klasse eine andere Methode mit demselben Namen wie die Basisklassenmethode einführen.
  • Methoden in Basisklassen werden nicht als virtuell deklariert.
  • Verwenden Sie das Schlüsselwort new in Methodendeklarationen in abgeleiteten Klassen.

Praktische Anwendung

Methodenüberschreibung:

  • Benutzerdefinierte geerbte Methoden
  • Sorgen für polymorphes Verhalten

Methodenausblenden:

  • Vorwärtskompatibilität (Vermeidung von Problemen, wenn in Zukunft neue Methoden hinzugefügt werden)
  • Kovarianz von Rückgabetypen (Rückgabe abgeleiteter Klasseninstanzen von Basisklassenmethoden)

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage