Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

C#-Vererbung und Polymorphismus mit Programmbeispielen

Was ist Vererbung in C#?

Erbschaft ist ein wichtiges Konzept von C#. Vererbung ist ein Konzept, bei dem Sie übergeordnete Klassen und untergeordnete Klassen definieren. Die untergeordneten Klassen erben Methoden und Eigenschaften der übergeordneten Klasse, können aber gleichzeitig das Verhalten der Methoden bei Bedarf ändern. Die untergeordnete Klasse kann bei Bedarf auch eigene Methoden definieren.

In diesem C#-Tutorial lernen Sie-

Lassen Sie uns die C#-Vererbung anhand eines Programmbeispiels besser verstehen:

C#-Vererbungsbeispiel

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 „geschützt“ sowohl zu den Feldern „TutorialID“ als auch „TutorialName“ hinzufügen müssen.

Denken Sie daran, dass wir diesen Zugriffsmodifikator im Access Modifier-Tutorial erwähnt hatten. 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 besteht darin, unsere neue untergeordnete Klasse hinzuzufügen. Der Name dieser Klasse lautet „Guru99Tutorial“. In diesem Schritt fügen wir den folgenden Code zur Datei Tutorial.cs hinzu. Der Code sollte nach der Tutorial-Klassendefinition platziert werden.

Code-Erklärung:-

  1. Der erste Schritt besteht darin, die untergeordnete Klasse Guru99Tutorial zu erstellen. Wir müssen auch erwähnen, dass diese Klasse eine untergeordnete Klasse der Tutorial-Klasse sein wird. Dies geschieht durch das Schlüsselwort ‚:‘.
  2. 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.
  3. Dann 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 daran, dass „Guru99Tutorial“ eine untergeordnete Klasse der Tutorial-Klasse ist. Und weil wir die Felder der Tutorial-Klasse geschützt gemacht 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 zeigen wir das Feld TutorialName mit Hilfe der GetTutorial-Methode 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-Erklärung:-

  1. Der erste Schritt besteht darin, ein Objekt für die Guru99Tutorial-Klasse zu erstellen. Dies geschieht über das Schlüsselwort „new“. Beachten Sie, dass wir diesmal kein Objekt der Tutorial-Klasse erstellen.
  2. Wir verwenden die RenameTutorial-Methode der Guru99Tutorial-Klasse, um das TutorialName-Feld zu ändern. Wir übergeben den String „.Net by Guru99“ an die RenameTutorial-Methode.
  3. Wir rufen dann die GetTutorial-Methode auf. Beachten Sie, dass wir, obwohl diese Methode nicht in der Guru99Tutorial-Klasse definiert ist, dennoch auf diese Methode zugreifen können. Die Ausgabe der GetTutorial-Methode wird dann über die Console.WriteLine-Methode auf der Konsole angezeigt.

Wenn der obige Code korrekt eingegeben und das Programm erfolgreich ausgeführt wird, 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 RenameTutorial-Methode ermöglicht, die von der untergeordneten Klasse aufgerufen wurde.

Was ist Polymorphismus in C#?

Polymorphismus in C# ist ein OOPs-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 ein Anruf, eine Textnachricht, eine Bildnachricht, eine E-Mail usw. sein. Das Ziel ist also ein gemeinsames, dh Kommunikation, aber ihr Ansatz ist unterschiedlich. Dies wird Polymorphismus genannt.

Durch das folgende Programmbeispiel erhalten Sie ein besseres Verständnis von 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-Erklärung:-

1 &2) Der erste Schritt ist derselbe wie in unseren früheren Beispielen. Wir behalten die Definition der SetTutorial-Methode unverändert bei.

3) Diese Methode setzt die TutorialID und den TutorialName basierend auf den Parametern pID und pName.

4) Hier nehmen wir eine Änderung an unserer Klasse vor, in der wir eine neue Methode mit demselben Namen wie SetTutorial hinzufügen. Nur dieses Mal übergeben wir nur einen Parameter, nämlich den pName. In dieser Methode setzen wir einfach das Feld von TutorialName auf pName.

Schritt 2) Der letzte Schritt besteht darin, unsere Hauptdatei Program.cs zu ändern. In unserer Konsolenanwendung erstellen wir ein Objekt der Guru99Tutorial-Klasse.

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-Erklärung:-

  1. Im ersten Schritt verwenden wir die Methode SetTutorial mit 2 Parametern. Dabei übergeben wir sowohl die TutorialID als auch den TutorialName an diese Methode.
  2. Im zweiten Schritt rufen wir nun die Methode SetTutorial mit nur einem Parameter auf. Wir übergeben nur den TutorialName an diese Methode.

Wenn der obige Code richtig eingegeben wird und das Programm ausgeführt wird, wird die folgende Ausgabe angezeigt. Falls Sie auch die Tutorial-ID zusammen mit dem Tutorial-Namen abrufen möchten, sollten Sie den folgenden Schritt ausführen

  1. Erstellen Sie eine separate Methode namens public int GetTutorialID
  2. Schreiben Sie in dieser Methode die Codezeile „return TutorialID“. Damit kann die TutorialID an das aufrufende Programm zurückgegeben werden.

Ausgabe:

Aus der Ausgabe können wir deutlich erkennen, dass beide Methoden erfolgreich aufgerufen wurden. Aus diesem Grund wurden die Zeichenfolgen „Erstes Tutorial“ und „Zweites Tutorial“ an die Konsole gesendet.

Zusammenfassung


C Sprache

  1. C#-Ausdrücke, -Anweisungen und -Blöcke (mit Beispielen)
  2. C#-Klasse und -Objekt
  3. Abstrakte C#-Klasse und -Methode
  4. C# Teilklasse und Teilmethode
  5. Versiegelte C#-Klasse und -Methode
  6. C++ Funktionen mit Programmbeispielen
  7. Unterschied zwischen Struktur und Klasse:Erklärt mit C++-Beispiel
  8. Unterschied zwischen while und do-while:An Beispielen erklärt
  9. type() und isinstance() in Python mit Beispielen
  10. C# - Programmstruktur