So verwenden Sie Vererbung in C#

So Verwenden Sie Vererbung In C



Beim Schreiben von Code in einer objektorientierten Programmiersprache können wir auf Situationen stoßen, in denen wir vorhandenen Code in einer neuen Klasse wiederverwenden oder einer vorhandenen Klasse zusätzliche Funktionalität hinzufügen müssen. In solchen Fällen bietet sich das Erbe an. Die Vererbung in der objektorientierten Programmierung ermöglicht es Klassen, die Eigenschaften und das Verhalten einer anderen Klasse zu erben. Dieser Artikel behandelt die Verwendung der Vererbung in C# und ihre verschiedenen Typen.

Inhaltsverzeichnis

Was ist Vererbung in C#

Wie funktioniert die Vererbung in C#







Vererbungsarten in C#



Abschluss



Was ist Vererbung in C#

In C# mit Vererbung kann eine Klasse die Eigenschaften und Methoden einer anderen Klasse übernehmen oder erben. Mit anderen Worten, es ermöglicht die Erstellung einer neuen Klasse auf der Grundlage einer vorhandenen Klasse, die als Basisklasse oder Superklasse bezeichnet wird. Eine Klasse, die nach Übernahme der Eigenschaften einer Basisklasse gebildet wurde, wird aufgerufen eine abgeleitete Klasse oder Unterklasse.





Diese abgeleitete Klasse in C# übernimmt nicht nur Eigenschaften der Basisklasse, sondern kann auch ihre eigenen einzigartigen Funktionen hinzufügen.

Wie funktioniert die Vererbung in C#

In C# wird die Vererbung durch die Verwendung des Doppelpunkts erreicht (:) Symbol. Der Name der Basisklasse wird nach dem Doppelpunkt definiert und von der abgeleiteten Klasse angegeben.



Das Folgende ist die Syntax zum Erstellen einer abgeleiteten Klasse, die Eigenschaften von der Basisklasse übernimmt:

Klasse AbgeleiteteKlasse : Basisklasse

{

// Abgeleitete Klassenmitglieder

}

Hier in diesem Code, Abgeleitete Klasse der Name der abgeleiteten Klasse ist und Basisklasse ist der Name der Basisklasse. Der : Symbol gibt an, dass DerivedClass von BaseClass erbt. Die Mitglieder von DerivedClass können auf BaseClass-Mitglieder zugreifen, sofern sie nicht privat sind.

Vererbungsarten in C#

C# unterstützt vier Arten der Vererbung: einfache, mehrstufige, hierarchische und mehrfache Vererbung. Schauen wir uns jeden Typ an.

Einfache Vererbung

Die einfache Vererbung ist die häufigste Art der Vererbung, bei der eine abgeleitete Klasse Eigenschaften von nur einer einzigen Basisklasse übernimmt oder erbt.

Zum Beispiel, Der angegebene Code erklärt die Klassenhierarchie und demonstriert Vererbungskonzepte.

mit System ;

mit System ;
Klasse Auto
{
öffentlich Leere Start ( )
{
Konsole. WriteLine ( 'Auto gestartet' ) ;
}
}
Klasse Tesla : Auto
{
öffentlich Leere Beschleunigen ( )
{
Konsole. WriteLine ( 'Tesla beschleunigt' ) ;
}
}
Klasse Programm
{
statisch Leere Hauptsächlich ( Schnur [ ] Argumente )
{
Tesla myTesla = neuer Tesla ( ) ;
mein Tesla. Start ( ) ; // Ausgabe: Auto gestartet
mein Tesla. Beschleunigen ( ) ; // Ausgabe: Tesla beschleunigt
}
}

Im obigen Code ist die Klasse Auto ist die Basisklasse und hat eine aufgerufene Methode Start() , die einfach die Nachricht druckt Auto gestartet zur Konsole.

Der Tesla-Klasse ist von der Klasse Car abgeleitet und übernimmt alle Eigenschaften der Klasse Car. Die Tesla-Klasse fügt eine Methode namens hinzu Beschleunigen() , wodurch die Nachricht gedruckt wird Tesla beschleunigt zur Konsole.

Der Hauptsächlich() Funktion definiert eine Instanz der aufgerufenen Tesla-Klasse mein Tesla und ruft seine Methoden Start() und Accelerate() auf.

Vererbung auf mehreren Ebenen

Bei der mehrstufigen Vererbung erbt eine abgeleitete Klasse von einer anderen abgeleiteten Klasse, die wiederum von einer Basisklasse erbt.

Zum Beispiel, Der folgende C#-Code demonstriert die Vererbung und das Überschreiben von Methoden in einer Klassenhierarchie.

mit System ;
Klasse Tier
{
öffentlich Leere Essen ( )
{
Konsole. WriteLine ( 'Tier essen' ) ;
}
}
Klasse Säugetier : Tier
{
öffentlich Leere Laufen ( )
{
Konsole. WriteLine ( 'Säugetier läuft' ) ;
}
}
Klasse Hund : Säugetier
{
öffentlich Leere Bellen ( )
{
Konsole. WriteLine ( 'Hundebellen' ) ;
}
}
Klasse Programm
{
statisch Leere Hauptsächlich ( Schnur [ ] Argumente )
{
Hund mein Hund = neuer Hund ( ) ;
Mein Hund. Essen ( ) ; // Ausgabe: Tierfressen
Mein Hund. Laufen ( ) ; // Ausgabe: Säugetier läuft
Mein Hund. Bellen ( ) ; // Ausgabe: Hund bellt
}
}

Hier Hund ist eine abgeleitete Klasse, die von erbt Säugetier , die wiederum von erbt Tier . Die Dog-Klasse hat Zugriff auf alle Eigenschaften, Methoden und Verhaltensweisen von Mammal und Animal und kann auch ihre eigene eindeutige Methode definieren Bellen() .

Der Tierische Klasse ist die Basisklasse und hat eine aufgerufene Methode Essen() , das einfach die Nachricht Animal eating auf der Konsole ausgibt.

Der Klasse Säugetier ist von der Klasse Animal abgeleitet und fügt eine Methode namens hinzu Laufen() , die die Meldung Mammal running auf der Konsole ausgibt.

Der Klasse Hund ist von der Mammal-Klasse abgeleitet und fügt eine aufgerufene Methode hinzu Bellen() , wodurch die Meldung Hund bellt auf der Konsole ausgegeben wird.

Die Main()-Methode erstellt eine Instanz der aufgerufenen Dog-Klasse Mein Hund und ruft seine Methoden Eat(), Run() und Bark() auf.

Beachten Sie, dass die Methoden Eat() und Run() nicht in der Dog-Klasse definiert sind, sondern von ihren übergeordneten Klassen geerbt werden Tier Und Säugetier , bzw. Der Bellen() -Methode ist nur in der Dog-Klasse definiert.

  Text
Beschreibung automatisch generiert

Hierarchische Vererbung

Bei der hierarchischen Vererbung werden unterschiedliche Anzahlen abgeleiteter Klassen von nur einer Basisklasse geerbt. Zum Beispiel:

mit System ;
Klasse Form
{
öffentlich Leere Ziehen ( )
{
Konsole. WriteLine ( 'Form zeichnen' ) ;
}
}
Klasse Zirkel : Form
{
öffentlich Leere Füllen ( )
{
Konsole. WriteLine ( „Kreis füllen“ ) ;
}
}
Klasse Platz : Form
{
öffentlich Leere Farbe ( )
{
Konsole. WriteLine ( 'Quadrat zum Ausmalen' ) ;
}
}
Klasse Programm
{
statisch Leere Hauptsächlich ( Schnur [ ] Argumente )
{
Kreisen Sie meinen Kreis ein = neuer Kreis ( ) ;
meinKreis. Ziehen ( ) ; // Ausgabe: Zeichnungsform
meinKreis. Füllen ( ) ; // Ausgabe: Kreis füllen

Quadrat mySquare = neues Quadrat ( ) ;
mySquare. Ziehen ( ) ; // Ausgabe: Zeichnungsform
mySquare. Farbe ( ) ; // Ausgabe: Farbquadrat
}
}

Im obigen Code beides Kreis Und Quadrat sind abgeleitete Klassen, die erben Form . Sie haben Zugriff auf die in Shape definierte Draw()-Methode und können auch ihre eigenen eindeutigen Methoden Fill() und Color() definieren.

Hier haben wir ein Objekt der Circle-Klasse mit dem Namen erstellt meinKreis und ein Objekt der Quadrat Klasse benannt mySquare . Wir rufen dann an Ziehen() -Methode, die von der Shape-Klasse geerbt wird, für beide Objekte.

Als nächstes nennen wir die Füllen() -Methode auf myCircle, die für die Circle-Klasse spezifisch ist, und die Farbe() Methode auf mySquare, die spezifisch für die square-Klasse ist.

Die Ausgabe wird wie folgt auf der Konsole ausgegeben:

  Text
Beschreibung wird automatisch mit mittlerem Vertrauen generiert

Mehrfachvererbung

Bei der Mehrfachvererbung erbt eine abgeleitete Klasse von mehreren Basisklassen. C# unterstützt jedoch keine Mehrfachvererbung. Um eine ähnliche Funktionalität zu erreichen, verwendet C# Schnittstellen .

Abschluss

Die Vererbung in C# ermöglicht es Klassen, Verhalten und Funktionalität von Basisklassen zu erben. Mithilfe der Vererbung können wir Code wiederverwenden und einen hierarchischen Fluss innerhalb des Programms erstellen. Durch das Verständnis der verschiedenen Arten der Vererbung kann man effizienteren und organisierteren Code schreiben, der einfacher zu warten und zu erweitern ist.