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.







