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

C# Vererbung & Polymorphie meistern: Praktische Code-Beispiele

Was ist Vererbung in C#?

Vererbung ist ein Eckpfeiler des objektorientierten Designs in C#. Sie ermöglicht einer Kindklasse, die Felder und Methoden einer Elternklasse automatisch zu erhalten, während die Kindklasse dieses Verhalten überschreiben oder erweitern darf. Dies fördert Code-Wiederverwendung, vereinfacht Wartung und etabliert eine klare Hierarchie.

C# Vererbungsbeispiel

Nachfolgend eine schrittweise Demonstration, wie Vererbung implementiert und protected Member genutzt werden.

Schritt 1 – Basisklasse modifizieren

Öffnen Sie Tutorial.cs und ändern Sie die Tutorial-Klasse so, dass ihre Schlüsselfelder protected sind:

C# Vererbung & Polymorphie meistern: Praktische Code-Beispiele

Die Verwendung von protected stellt sicher, dass nur abgeleitete Klassen direkt auf diese Felder zugreifen können.

Schritt 2 – Abgeleitete Klasse erstellen

Fügen Sie folgenden Code nach der Basisklassendefinition in Tutorial.cs ein:

C# Vererbung & Polymorphie meistern: Praktische Code-Beispiele

Erklärung:

  1. Guru99Tutorial als Kind von Tutorial mittels Doppelpunkt-Syntax (:) deklarieren.
  2. Methode RenameTutorial hinzufügen, die TutorialName einen neuen Wert zuweist.
  3. Da TutorialName protected ist, kann Guru99Tutorial darauf zugreifen, obwohl es nicht explizit dort deklariert ist.

Schritt 3 – Abgeleitete Klasse in Program.cs nutzen

Ersetzen Sie den Inhalt von Program.cs durch Folgendes:

C# Vererbung & Polymorphie meistern: Praktische Code-Beispiele

using System;
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();
        }
    }
}

Erklärung:

  1. Das Programm instanziiert Guru99Tutorial, nicht die Basisklasse Tutorial.
  2. Es ruft RenameTutorial auf, um den Titel zu ändern.
  3. Obwohl GetTutorial in der Basisklasse definiert ist, kann die abgeleitete Instanz sie direkt aufrufen.

Die Codeausführung gibt aus:

C# Vererbung & Polymorphie meistern: Praktische Code-Beispiele

Was ist Polymorphie in C#?

Polymorphie ermöglicht, dass ein einzelnes Interface unterschiedliche zugrundeliegende Formen repräsentiert. In C# manifestiert sich dies oft als Methodenüberladung oder -überschreibung, sodass derselbe Methodenname je nach Parametern oder Kontext unterschiedliche Aufgaben erfüllt.

C# Polymorphie-Beispiel

Wir demonstrieren Methodenüberladung innerhalb derselben Klasse.

Schritt 1 – Basisklasse aktualisieren

Modifizieren Sie Tutorial.cs wie gezeigt:

C# Vererbung & Polymorphie meistern: Praktische Code-Beispiele

Wesentliche Änderungen:

  1. Die SetTutorial-Methode hat nun zwei Überladungen – eine, die int und string akzeptiert, und eine, die nur string akzeptiert.
  2. Beide Überladungen weisen Werte den entsprechenden Feldern zu.

Schritt 2 – Test in Program.cs

Ersetzen Sie Program.cs durch folgenden Code:

using System;
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();
        }
    }
}

Erklärung:

  1. Erster Aufruf übergibt sowohl id als auch name an die Zweiparameter-Überladung.
  2. Zweiter Aufruf übergibt nur name, ruft die Einparameter-Überladung auf.

Die Konsole zeigt:

C# Vererbung & Polymorphie meistern: Praktische Code-Beispiele

Für fortgeschrittene Szenarien können Sie eine GetTutorialID-Methode hinzufügen, um die ID separat abzurufen.

Zusammenfassung

C Sprache

  1. C# Ausdrücke, Anweisungen & Blöcke: Umfassender Leitfaden mit Beispielen
  2. C# Klassen & Objekte: Fundamente für robustes OOP
  3. C# Abstrakte Klassen & Methoden meistern: Praktischer Leitfaden
  4. C# Partielle Klassen und Methoden verstehen
  5. Versiegelte Klassen und Methoden in C# meistern
  6. C++-Funktionen erklärt: Mit praktischen Code-Beispielen
  7. C++ Struct vs. Class: Wichtige Unterschiede, Syntax und beste Anwendungsfälle
  8. While- vs. Do-While-Schleifen: Klare Gegenüberstellung mit praktischen Beispielen
  9. type() und isinstance() in Python verstehen: Praktische Beispiele
  10. C# Programmstruktur verstehen: Kernkomponenten & Beispiel