Inhaltsverzeichnis
Wie funktioniert das Überschreiben in C#?
Arten des Überschreibens in C#
Beispiel 1 – Ohne virtuelle und überschriebene Schlüsselwörter
Beispiel 2 (a) – Mit virtuellen und Override-Schlüsselwörtern
Beispiel 2 (b) – Virtuelle und Override-Schlüsselwörter
Beispiel 3 – Mit Basisschlüsselwort
Beispiel 4 – Abstrakte Klassen mit Überschreibung
Regeln für das Überschreiben von Methoden
Fazit

Überschreiben in C#

Sep 03, 2024 pm 03:13 PM
c# c# tutorial

Überschreiben in C# ist die Neuimplementierung einer Basisklassenmethode in einer abgeleiteten Klasse. Dabei wird die Basisklassenmethode in der untergeordneten Klasse überschrieben. Die abgeleitete Klassenmethode hat denselben Namen und dieselbe Signatur wie die Basisklassenmethode. Das Überschreiben ist nützlich, um Laufzeitpolymorphismus zu erreichen.

Es gibt einige Schlüsselwörter, die beim Überschreiben von Methoden verwendet werden.

1. Virtual – Dieses Schlüsselwort wird mit einer Basisklasse verwendet, was bedeutet, dass die Methode einer Basisklasse überschrieben werden kann.

public virtual void Method()
{
// implementation
}
Nach dem Login kopieren

2. Überschreiben – Dieses Schlüsselwort wird mit einer abgeleiteten Klasse verwendet, was bedeutet, dass die abgeleitete Klasse eine Methode einer Basisklasse überschreibt.

public override void Method()
{
// implementation
}
Nach dem Login kopieren

3. Basis – Dieses Schlüsselwort wird in einer abgeleiteten Klasse verwendet, um die Basisklassenmethode aufzurufen.

public override void Method()
{
base.Method();
// implementation
}
Nach dem Login kopieren

Wie funktioniert das Überschreiben in C#?

Unten finden Sie ein Beispiel dafür, wie wir das Überschreiben in C# implementieren können.

class Parent
{
public virtual void Demo()  // base class
{
Console.WriteLine(“This is parent”);
}
}
class Child: Parent
{
public override void Demo()  // derived class
{
Console.WriteLine(“This is child”);
}
}
Nach dem Login kopieren

Im obigen Beispiel gibt es zwei Klassen, eine ist die Basisklasse oder übergeordnete Klasse und die andere ist eine abgeleitete Klasse oder wir können sagen, eine untergeordnete Klasse. Eine Basisklassenmethode wird in der untergeordneten Klasse abgeleitet. Dabei ist die Methode in einer übergeordneten Klasse virtuell, was bedeutet, dass sie von der untergeordneten Klasse überschrieben werden kann. Überschreiben in einem untergeordneten Element bedeutet, dass diese Methode mit der Methode der übergeordneten Klasse mit derselben Methodensignatur identisch ist.

Arten des Überschreibens in C#

Unten finden Sie Beispiele, die das Überschreiben mit verschiedenen Schlüsselwörtern zeigen.

Beispiel 1 – Ohne virtuelle und überschriebene Schlüsselwörter

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Overriding
{
class Bird   // base class
{
public void fly()  // base class method
{
Console.WriteLine("Birds are flying");
}
}
class Peacock : Bird   // derived class
{
public new void fly()  // derived class method
{
Console.WriteLine("Peacock is flying");
}
}
class Program
{
// main method
static void Main(string[] args)
{
Bird b = new Peacock();
b.fly();
Console.ReadLine();
}
}
}
Nach dem Login kopieren

Im obigen Beispiel wird weder in den Basismethoden noch in den abgeleiteten Methoden ein Schlüsselwort verwendet.

Auch in der Hauptmethode wird die übergeordnete Referenz verwendet, um die untergeordnete Methode aufzurufen. Wenn also in diesem Fall kein Schlüsselwort verwendet wird, wird die übergeordnete Methode anstelle einer untergeordneten Methode aufgerufen. Die Ausgabe lautet also

Ausgabe:

Überschreiben in C#

Beispiel 2 (a) – Mit virtuellen und Override-Schlüsselwörtern

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Overriding
{
class Bird   // base class
{
public virtual void fly()   // base class method
{
Console.WriteLine("Birds are flying");
}
}
class Peacock : Bird   // derived class
{
public override void fly()   // derived class method
{
Console.WriteLine("Peacock is flying");
}
}
class Program
{
// main method
static void Main(string[] args)
{
Bird b = new Peacock();
b.fly();
Console.ReadLine();
}
}
}
Nach dem Login kopieren

In diesem Beispiel wird „virtual“ in der Basisklasse verwendet, was bedeutet, dass es der untergeordneten Klasse die Berechtigung gibt, die Methode auf ihre eigene Weise zu implementieren. In einer abgeleiteten Klasse wird Override verwendet, was bedeutet, dass die untergeordnete Methode die Override-Methode ist. Beide Methoden sind identisch, haben denselben Namen und dieselbe Methodensignatur, aber der Implementierungsteil ist unterschiedlich. Auch in diesem Beispiel wird die übergeordnete Referenz verwendet, um die untergeordnete Methode aufzurufen. Da es sich bei einer übergeordneten Methode jedoch um eine virtuelle Methode handelt, wird zuerst die untergeordnete Methode und nicht die übergeordnete Methode aufgerufen. Die Ausgabe lautet also

Ausgabe:

Überschreiben in C#

Beispiel 2 (b) – Virtuelle und Override-Schlüsselwörter

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Overriding
{
class Bird  // base class
{
public virtual void fly()   // base class method
{
Console.WriteLine("Birds are flying");
}
}
class Peacock : Bird   // derived class
{
public override void fly()  // derived class method
{
Console.WriteLine("Peacock is flying");
}
}
class Program
{
//main method
static void Main(string[] args)
{
Peacock p = new Peacock();
p.fly();
Console.ReadLine();
}
}
}
Nach dem Login kopieren

Dieses Beispiel ist das gleiche wie das vorherige Beispiel, aber diese untergeordnete Methode wird als Referenz verwendet.

Ausgabe: 

Überschreiben in C#

Beispiel 3 – Mit Basisschlüsselwort

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Overriding
{
class Bird  // base class
{
public virtual void fly()  // base class method
{
Console.WriteLine("Birds are flying");
}
}
class Peacock : Bird  // derived class
{
public override void fly()  // derived class method
{
base.fly();  // base is use to call parent method
Console.WriteLine("Peacock is flying");
}
}
class Program
{
static void Main(string[] args)
{
Peacock p = new Peacock();
p.fly();
Console.ReadLine();
}
}
}
Nach dem Login kopieren

Im obigen Beispiel wird die Basis in einer abgeleiteten Klasse verwendet, um die Basisklassenmethode aufzurufen. In dieser wird also zuerst die Basismethode und dann die abgeleitete Methode aufgerufen.

Ausgabe:

Überschreiben in C#

Beispiel 4 – Abstrakte Klassen mit Überschreibung

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Overriding
{
abstract class Calculate
{
public abstract int sum();
}
class Values : Calculate // derived class
{
int val1;
int val2;
public Values(int a = 0, int b = 0)
{
val1 = a;
val2 = b;
}
public override int sum()
{
Console.WriteLine("sum of two values");
return (val1 + val2);
}
}
class Program
{
static void Main(string[] args)
{
Values v = new Values(10, 20);
int a = v.sum();
Console.WriteLine(a);
Console.ReadLine();
}
}
}
Nach dem Login kopieren

Im obigen Beispiel wird eine abstrakte Methode verwendet. Eine abstrakte Klasse wird durch die abgeleitete Klasse implementiert, die eine abstrakte Methode enthält.

Ausgabe: 

Überschreiben in C#

Regeln für das Überschreiben von Methoden

  • Die Methodensignatur einer abgeleiteten Klasse sollte mit der einer Basisklasse identisch sein.
  • Überschreiben ist in derselben Klasse nicht möglich.
  • Zugriffsmodifikatoren müssen für virtuelle Methoden und Überschreibungsmethoden gleich sein.
  • Das Schlüsselwort virtual wird in der Basisklassenmethode und Override in einer abgeleiteten Klassenmethode verwendet.
  • Die Basisklassenmethode sollte nicht statisch sein.

Fazit

Überschreiben ist beim Laufzeitpolymorphismus nützlich. Es ermöglicht abgeleiteten Klassen, eine Basisklassenmethode auf ihre eigene Weise zu implementieren. Daher unterscheidet sich die Methodenimplementierung der abgeleiteten Klasse von ihrer Basisklasse. Die überschriebene Methode kann virtuell, überschrieben oder abstrakt sein.

Das obige ist der detaillierte Inhalt vonÜberschreiben in C#. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

<🎜>: Bubble Gum Simulator Infinity - So erhalten und verwenden Sie Royal Keys
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Flüstern des Hexenbaum
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Fusionssystem, erklärt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Java-Tutorial
1669
14
PHP-Tutorial
1273
29
C#-Tutorial
1256
24
Active Directory mit C# Active Directory mit C# Sep 03, 2024 pm 03:33 PM

Leitfaden zu Active Directory mit C#. Hier besprechen wir die Einführung und die Funktionsweise von Active Directory in C# sowie die Syntax und das Beispiel.

Zufallszahlengenerator in C# Zufallszahlengenerator in C# Sep 03, 2024 pm 03:34 PM

Leitfaden zum Zufallszahlengenerator in C#. Hier besprechen wir die Funktionsweise des Zufallszahlengenerators, das Konzept von Pseudozufallszahlen und sicheren Zahlen.

C#-Datenrasteransicht C#-Datenrasteransicht Sep 03, 2024 pm 03:32 PM

Leitfaden zur C#-Datenrasteransicht. Hier diskutieren wir die Beispiele, wie eine Datenrasteransicht aus der SQL-Datenbank oder einer Excel-Datei geladen und exportiert werden kann.

Fakultät in C# Fakultät in C# Sep 03, 2024 pm 03:34 PM

Leitfaden zur Fakultät in C#. Hier diskutieren wir die Einführung in die Fakultät in C# zusammen mit verschiedenen Beispielen und Code-Implementierungen.

Der Unterschied zwischen Multithreading und asynchronem C# Der Unterschied zwischen Multithreading und asynchronem C# Apr 03, 2025 pm 02:57 PM

Der Unterschied zwischen Multithreading und Asynchron besteht darin, dass Multithreading gleichzeitig mehrere Threads ausführt, während asynchron Operationen ausführt, ohne den aktuellen Thread zu blockieren. Multithreading wird für rechenintensive Aufgaben verwendet, während asynchron für die Benutzerinteraktion verwendet wird. Der Vorteil des Multi-Threading besteht darin, die Rechenleistung zu verbessern, während der Vorteil von Asynchron nicht darin besteht, UI-Threads zu blockieren. Die Auswahl von Multithreading oder Asynchron ist von der Art der Aufgabe abhängt: Berechnungsintensive Aufgaben verwenden Multithreading, Aufgaben, die mit externen Ressourcen interagieren und die UI-Reaktionsfähigkeit asynchron verwenden müssen.

Muster in C# Muster in C# Sep 03, 2024 pm 03:33 PM

Leitfaden zu Mustern in C#. Hier besprechen wir die Einführung und die drei wichtigsten Arten von Mustern in C# zusammen mit ihren Beispielen und der Code-Implementierung.

Primzahlen in C# Primzahlen in C# Sep 03, 2024 pm 03:35 PM

Leitfaden zu Primzahlen in C#. Hier besprechen wir die Einführung und Beispiele von Primzahlen in C# sowie die Codeimplementierung.

So ändern Sie das Format von XML So ändern Sie das Format von XML Apr 03, 2025 am 08:42 AM

Es gibt verschiedene Möglichkeiten, XML -Formate zu ändern: manuell mit einem Texteditor wie Notepad bearbeiten; automatisch Formatierung mit Online- oder Desktop -XML -Formatierungswerkzeugen wie XMLBeautifier; Definieren Sie Conversion -Regeln mithilfe von XML -Conversion -Tools wie XSLT; oder analysieren und mit Verwendung von Programmiersprachen wie Python arbeiten. Seien Sie vorsichtig, wenn Sie die Originaldateien ändern und sichern.

See all articles