In diesem Tutorial lernen Sie:
- Erbe
- Polymorphismus
Was ist Vererbung in C #?
Vererbung ist ein wichtiges Konzept in C #. Vererbung ist ein Konzept, bei dem Sie übergeordnete und untergeordnete Klassen definieren.
Die untergeordneten Klassen erben Methoden und Eigenschaften der übergeordneten Klasse. Gleichzeitig können sie bei Bedarf auch das Verhalten der Methoden ändern. Die untergeordnete Klasse kann bei Bedarf auch eigene Methoden definieren.
Sie werden ein besseres Verständnis bekommen, wenn wir diese Aktion sehen.
Lassen Sie uns nun sehen, 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 der Datei Tutorial.cs den folgenden Code hinzu.
Beachten Sie, dass wir jetzt den Zugriffsmodifikator "protected" sowohl zum Feld "TutorialID" als auch zum Feld "TutorialName" hinzufügen müssen.
Denken Sie daran, dass wir diesen Zugriffsmodifikator im Tutorial "Zugriffsmodifikator" erwähnt haben. Nun, hier können Sie den Zweck sehen, dies zu haben. Nur wenn Sie diesen Zugriffsmodifikator (geschützt) haben, kann die untergeordnete Klasse die Felder der übergeordneten Klasse verwenden.
Schritt 2) Der zweite Schritt ist das Hinzufügen unserer neuen Kinderklasse. Der Name dieser Klasse lautet "Guru99Tutorial". In diesem Schritt fügen wir der Datei Tutorial.cs den folgenden Code hinzu. Der Code sollte nach der Definition der Lernprogrammklasse platziert werden.
Code Erläuterung: -
- Der erste Schritt besteht darin, die untergeordnete Guru99Tutorial-Klasse zu erstellen. Wir müssen auch erwähnen, dass diese Klasse eine untergeordnete Klasse der Tutorial-Klasse sein wird. Dies erfolgt über das Schlüsselwort ':'.
- Als nächstes definieren wir eine Methode namens RenameTutorial. Es wird verwendet, um das Feld TutorialName umzubenennen. Diese Methode akzeptiert eine Zeichenfolgenvariable, die den neuen Namen des Lernprogramms enthält.
- Anschließend haben wir dem Feld TutorialName den Parameter pNewName zugewiesen.
Hinweis : - Auch wenn wir das Feld TutorialName in der Klasse "Guru99Tutorial" nicht definiert haben, können wir dennoch auf dieses Feld zugreifen. Dies liegt an der Tatsache, dass "Guru99Tutorial" eine untergeordnete Klasse der Tutorial-Klasse ist. Und weil wir die Felder der Tutorial-Klasse als geschützt festgelegt haben, kann diese Klasse auf sie zugreifen.
Schritt 3) Der letzte Schritt besteht darin, unsere Hauptdatei Program.cs zu ändern. In unserer Konsolenanwendung werden wir ein Objekt der Guru99Tutorial-Klasse erstellen. Mit diesem Objekt rufen wir die RenameTutorial-Methode auf. Anschließend wird das Feld TutorialName mithilfe der GetTutorial-Methode angezeigt.
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DemoApplication{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 zu erstellen. Dies erfolgt über das Schlüsselwort 'new'. Beachten Sie, dass wir diesmal kein Objekt der Tutorial-Klasse erstellen.
- Wir verwenden die RenameTutorial-Methode der Guru99Tutorial-Klasse, um das TutorialName-Feld zu ändern. Wir übergeben die Zeichenfolge ".Net by Guru99" an die RenameTutorial-Methode.
- Wir rufen dann die GetTutorial-Methode auf. Beachten Sie, dass wir auf diese Methode zugreifen können, obwohl diese Methode nicht in der Guru99Tutorial-Klasse definiert ist. Die Ausgabe der GetTutorial-Methode wird dann über die Console.WriteLine-Methode in der Konsole angezeigt.
Wenn der obige Code richtig eingegeben wurde und das Programm erfolgreich ausgeführt wurde, wird die folgende Ausgabe angezeigt.
Ausgabe:
Aus der Ausgabe können wir deutlich erkennen, dass das Feld TutorialName in ".Net by Guru99" umbenannt wurde. Dies wurde durch die von der untergeordneten Klasse aufgerufene RenameTutorial-Methode ermöglicht.
Was ist Polymorphismus in C #?
Polymorphismus ist ein OOP-Konzept, bei dem ein Name viele Formen haben kann.
Zum Beispiel haben Sie ein Smartphone für die Kommunikation. Der von Ihnen gewählte Kommunikationsmodus kann beliebig sein. Es kann sich um einen Anruf, eine Textnachricht, eine Bildnachricht, eine E-Mail usw. handeln. Das gemeinsame Ziel ist also die Kommunikation, aber ihr Ansatz ist unterschiedlich. Dies nennt man Polymorphismus.
Sie werden ein besseres Verständnis bekommen, wenn wir diese Aktion sehen.
Lassen Sie uns nun sehen, 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 der Datei Tutorial.cs den folgenden Code hinzu.
Code Erläuterung: -
1 & 2) Der erste Schritt ist der gleiche wie in unseren früheren Beispielen. Wir behalten die Definition der SetTutorial-Methode bei.
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, in der wir eine neue Methode mit dem gleichen Namen wie SetTutorial hinzufügen. Nur dieses Mal übergeben wir nur einen Parameter, nämlich den pName. Bei dieser Methode setzen wir nur das Feld TutorialName auf pName.
Schritt 2) Der letzte Schritt besteht darin, unsere Hauptdatei Program.cs zu ändern. In unserer Konsolenanwendung werden wir ein Objekt der Guru99Tutorial-Klasse erstellen.
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. Wo wir sowohl die TutorialID als auch den TutorialName an diese Methode übergeben.
- Im zweiten Schritt rufen wir jetzt die SetTutorial-Methode mit nur einem Parameter auf. Wir übergeben nur den TutorialName an diese Methode.
Wenn der obige Code richtig eingegeben und das Programm ausgeführt wird, wird die folgende Ausgabe angezeigt. Wenn Sie auch die Tutorial-ID zusammen mit dem Tutorial-Namen abrufen möchten, sollten Sie den folgenden Schritt ausführen
- Erstellen Sie eine separate Methode namens public int GetTutorialID
- In dieser Methode schreiben Sie die Codezeile "return TutorialID". Dies kann verwendet werden, um die TutorialID an das aufrufende Programm zurückzugeben.
Ausgabe:
Aus der Ausgabe können wir deutlich erkennen, dass beide Methoden erfolgreich aufgerufen wurden. Aus diesem Grund wurden die Zeichenfolgen "Erstes Lernprogramm" und "Zweites Lernprogramm" an die Konsole gesendet.
Zusammenfassung
- Bei der Vererbung erbt eine untergeordnete Klasse die Felder und Methoden der übergeordneten Klasse. Die untergeordnete Klasse kann dann auch eigene Methoden definieren.
- Polymorphismus ist ein OOP-Konzept, bei dem ein Name viele Formen haben kann.