C#-Vererbung und Polymorphismus mit Programmbeispielen
⚡ Intelligente Zusammenfassung
Vererbung und Polymorphismus sind zwei zentrale Prinzipien der objektorientierten Programmierung in C#. Vererbung ermöglicht es einer Kindklasse, die Felder und Methoden einer Elternklasse wiederzuverwenden, während Polymorphismus es einem Methodennamen erlaubt, verschiedene Formen anzunehmen.

Was ist Vererbung in C#?
Erbe ist ein wichtiges Konzept von C#. Vererbung ist ein Konzept, bei dem Sie übergeordnete und untergeordnete Klassen definieren. Die untergeordneten Klassen erben Methoden und Eigenschaften der übergeordneten Klasse, können aber gleichzeitig bei Bedarf auch das Verhalten der Methoden ändern. Die untergeordnete Klasse kann bei Bedarf auch eigene Methoden definieren.
Lassen Sie uns die C#-Vererbung anhand eines Programmbeispiels besser verstehen:
Beispiel für eine C#-Vererbung
Sehen wir uns nun an, wie wir das Konzept der Vererbung in unseren Code integrieren können.
Schritt 1) Der erste Schritt besteht darin, den Code für unsere Tutorial-Klasse zu ändern. In diesem Schritt fügen wir den folgenden Code zur Datei Tutorial.cs hinzu.
Beachten Sie, dass wir jetzt den Zugriffsmodifikator „protected“ sowohl zum TutorialID- als auch zum TutorialName-Feld hinzufügen müssen.
Erinnern Sie sich, dass wir diesen Zugriffsmodifikator bereits erwähnt hatten? Tutorial zu ZugriffsmodifikatorenHier wird der Sinn dieser Zugriffsmodifizierer deutlich. Nur mit diesem Zugriffsmodifizierer (protected) kann die Kindklasse auf die Felder der Elternklasse zugreifen.
Schritt 2) Der zweite Schritt besteht darin, unsere neue Kindklasse hinzuzufügen. Der Name dieser Klasse lautet „Guru99Tutorial“. In diesem Schritt fügen wir den folgenden Code in die Datei Tutorial.cs ein. Der Code sollte nach der Definition der Tutorial-Klasse eingefügt werden.
Code Erläuterung:-
- Der erste Schritt besteht darin, die Guru99. Tutorial-Klasse. Diese Klasse ist eine Unterklasse der Tutorial-Klasse. Dies geschieht durch das Schlüsselwort ':'.
- Als Nächstes definieren wir eine Methode namens RenameTutorial. Es wird verwendet, um das Feld „TutorialName“ umzubenennen. Diese Methode akzeptiert eine String-Variable, die den neuen Namen des Tutorials enthält.
- Anschließend haben wir dem Feld TutorialName den Parameter pNewName zugewiesen. Hinweis: – Obwohl wir das Feld TutorialName in der „GuruIn der Klasse „99Tutorial“ können wir weiterhin auf dieses Feld zugreifen. Dies liegt daran, dass „GuruDie Klasse „Tutorial“ ist eine Unterklasse der Klasse „Tutorial“. Da die Felder der Klasse „Tutorial“ als geschützt deklariert wurden, können sie von dieser Klasse aus aufgerufen werden.
Schritt 3) Im letzten Schritt müssen wir unsere Hauptdatei Program.cs anpassen. In unserer Konsolenanwendung werden wir ein Objekt des Typs erstellen. Guru99Tutorial-Klasse. Mit diesem Objekt rufen wir die Methode RenameTutorial auf. Anschließend zeigen wir das Feld TutorialName mithilfe der Methode GetTutorial an.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { public class Tutorial { protected int TutorialID; protected string TutorialName; public void SetTutorial(int pID,string pName) { TutorialID=pID; TutorialName=pName; } public String GetTutorial() { return TutorialName; } } public class Guru99Tutorial:Tutorial { public void RenameTutorial(String pNewName) { TutorialName=pNewName; } static void Main(string[] args) { Guru99Tutorial pTutor=new Guru99Tutorial(); pTutor.RenameTutorial(".Net by Guru99"); Console.WriteLine(pTutor.GetTutorial()); Console.ReadKey(); } } }
Code Erläuterung:-
- Der erste Schritt besteht darin, ein Objekt für die Guru99Tutorial-Klasse. Dies geschieht über das Schlüsselwort „new“. Beachten Sie, dass wir diesmal kein Objekt der Tutorial-Klasse erstellen.
- Wir verwenden die RenameTutorial-Methode. GuruDie Klasse 99Tutorial ändert das Feld TutorialName. Wir übergeben die Zeichenkette „.Net by Guru99” zur RenameTutorial-Methode.
- Anschließend rufen wir die Methode „GetTutorial“ auf. Beachten Sie, dass diese Methode zwar nicht in der Dokumentation definiert ist, aber… GuruIn der Klasse 99Tutorial können wir weiterhin auf diese Methode zugreifen. Die Ausgabe der Methode GetTutorial wird anschließend über die Methode Console.WriteLine in der Konsole angezeigt.
Wenn der obige Code richtig eingegeben und das Programm erfolgreich ausgeführt wird, wird die folgende Ausgabe angezeigt.
Ausgang:
Aus der Ausgabe ist deutlich zu erkennen, dass das Feld „TutorialName“ von „.Net“ umbenannt wurde. Guru99”. Dies wurde durch die von der Kindklasse aufgerufene Methode RenameTutorial ermöglicht.
Was ist Polymorphismus in C#?
Polymorphie in C# Polymorphismus ist ein Konzept der objektorientierten Programmierung (OOP), bei dem ein Name mehrere Formen annehmen kann. Stellen Sie sich beispielsweise ein Smartphone zur Kommunikation vor. Die gewählte Kommunikationsart kann beliebig sein: Anruf, SMS, MMS, E-Mail usw. Das Ziel ist also immer dasselbe – die Kommunikation –, aber die Vorgehensweise ist unterschiedlich. Dies nennt man Polymorphismus.
Mit dem folgenden Programmbeispiel erhalten Sie ein besseres Verständnis des C#-Polymorphismus:
Beispiel für C#-Polymorphismus
Sehen wir uns nun an, wie wir das Konzept des Polymorphismus in unseren Code integrieren können.
Schritt 1) Der erste Schritt besteht darin, den Code für unsere Tutorial-Klasse zu ändern. In diesem Schritt fügen wir den folgenden Code zur Datei Tutorial.cs hinzu.
Code Erläuterung:-
1 & 2) Der erste Schritt ist derselbe wie in unseren vorherigen Beispielen. Wir sind keeping die Definition der SetTutorial-Methode, wie sie ist.
3) Diese Methode legt die TutorialID und den TutorialName basierend auf den Parametern pID und pName fest.
4) Hier nehmen wir eine Änderung an unserer Klasse vor, indem wir eine neue Methode mit dem gleichen Namen SetTutorial hinzufügen. Nur übergeben wir dieses Mal nur einen Parameter, nämlich den pName. Bei dieser Methode setzen wir lediglich das Feld von TutorialName auf pName.
Schritt 2) Im letzten Schritt müssen wir unsere Hauptdatei Program.cs anpassen. In unserer Konsolenanwendung werden wir ein Objekt des Typs erstellen. Guru99. Tutoriumskurs.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace DemoApplication { class Tutorial { public int TutorialID; public string TutorialName; public void SetTutorial(int pID,string pName) { TutorialID=pID; TutorialName=pName; } public void SetTutorial(string pName) { TutorialName=pName; } public String GetTutorial() { return TutorialName; } static void Main(string[] args) { Tutorial pTutor=new Tutorial(); pTutor.SetTutorial(1,"First Tutorial"); Console.WriteLine(pTutor.GetTutorial()); pTutor.SetTutorial("Second Tutorial"); Console.WriteLine(pTutor.GetTutorial()); Console.ReadKey(); } } }
Code Erläuterung:-
- Im ersten Schritt verwenden wir die SetTutorial-Methode mit 2 Parametern. Dabei übergeben wir sowohl die TutorialID als auch den TutorialName an diese Methode.
- Im zweiten Schritt rufen wir nun die SetTutorial-Methode mit nur einem Parameter auf. Wir übergeben lediglich den TutorialName an diese Methode.
Wenn der obige Code richtig eingegeben und das Programm ausgeführt wird, wird die folgende Ausgabe angezeigt. Wenn Sie neben dem Tutorial-Namen auch die Tutorial-ID abrufen möchten, sollten Sie den folgenden Schritt ausführen
- Erstellen Sie eine separate Methode namens public int GetTutorialID
- Schreiben Sie in diese Methode die Codezeile „return TutorialID“. Dies kann verwendet werden, um die TutorialID an das aufrufende Programm zurückzugeben.
Ausgang:
Aus der Ausgabe können wir deutlich erkennen, dass beide Methoden erfolgreich aufgerufen wurden. Aus diesem Grund wurden die Zeichenfolgen „First Tutorial“ und „Second Tutorial“ an die Konsole gesendet.







