C# -Vererbung
Vererbung (abgeleitete Klasse und Basisklasse)
In C# ist es möglich, Felder und Methoden von einer Klasse auf eine andere zu vererben. Wir unterteilen das „Vererbungskonzept“ in zwei Kategorien:
- Abgeleitete Klasse (untergeordnet) – die Klasse, die von einer anderen Klasse erbt
- Basisklasse (übergeordnet) – die Klasse, von der geerbt wird
Um von einer Klasse zu erben, verwenden Sie das Symbol :
.
Im folgenden Beispiel erbt die Klasse Car
(untergeordnet) die Felder und Methoden vom Vehicle
Klasse (übergeordnet):
Beispiel
class Vehicle // Basisklasse (übergeordnet)
{
public string brand = "Ford"; // Vehicle feld
public void honk() // Vehicle methode
{
Console.WriteLine("Tuut, tuut!");
}
}
class Car : Vehicle // abgeleitete Klasse (Kind)
{
public string modelName = "Mustang"; // Car feld
}
class Program
{
static void Main(string[] args)
{
// Erstellen Sie ein myCar-Objekt
Car myCar = new Car();
// Rufen Sie die honk()-Methode (aus der Vehicle-Klasse) für das myCar-Objekt auf
myCar.honk();
// Zeigen Sie den Wert des Markenfelds (aus der Klasse „Vehicle“) und den Wert des modelName aus der Klasse „Car“ an
Console.WriteLine(myCar.brand + " " + myCar.modelName);
}
}
Warum und wann sollte „Vererbung“ verwendet werden?
Es ist nützlich für die Wiederverwendbarkeit von Code: Verwenden Sie Felder und Methoden einer vorhandenen Klasse wieder, wenn Sie eine neue Klasse erstellen.
Tipp: Werfen Sie auch einen Blick auf das nächste Kapitel, C# Polymorphismus, in dem geerbte Methoden zur Ausführung verschiedener Aufgaben verwendet werden.
Das versiegelte Schlüsselwort
Wenn Sie nicht möchten, dass andere Klassen von einer Klasse erben, verwenden Sie das Schlüsselwort sealed
:
Wenn Sie versuchen, auf eine sealed
-Klasse zuzugreifen, generiert C# einen Fehler:
sealed class Vehicle
{
...
}
class Car : Vehicle
{
...
}
Die Fehlermeldung wird etwa so aussehen:
'Car': cannot derive from sealed type 'Vehicle'