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

C# Abstrakte Klassen: Praktisches Tutorial mit Code-Beispielen

Was ist eine abstrakte Klasse in C#?

Eine abstrakte Klasse dient als Bauplan für andere Klassen. Sie kann nie direkt instanziiert werden und wird mit dem abstract-Schlüsselwort markiert. Abstrakte Klassen enthalten typischerweise eine oder mehrere abstract- oder virtual-Methoden, die Unterklassen implementieren oder überschreiben sollen. Sie bieten einen gemeinsamen Vertrag, während konkrete Unterklassen spezifisches Verhalten liefern.

Betrachten Sie folgendes Beispiel. Wir definieren zunächst eine generische Animal-Klasse, ohne zu wissen, ob das Tier ein Hund, eine Katze oder etwas anderes ist. Die Description-Methode ist ein Platzhalter, der von abgeleiteten Klassen spezialisiert wird.

C# Abstrakte Klassen: Praktisches Tutorial mit Code-Beispielen

Wenn der konkrete Tierart bekannt ist, erstellen wir eine Unterklasse wie Dog, die von Animal erbt. Die Dog-Klasse kann die Basismethode Description nicht verändern; stattdessen liefert sie ihre eigene Implementierung oder fügt neue Methoden wie DogDescription hinzu. Dies demonstriert das Kernkonzept von C# abstrakten Klassen: Ein Basiskontrakt mit konkreten Unterklassen, die die Details füllen.

C# Abstrakte Klassen: Praktisches Tutorial mit Code-Beispielen

Abstrakte Klasse in C# erstellen

Nachfolgend ein Schritt-für-Schritt-Leitfaden zur Definition einer abstrakten Klasse und einer konkreten Unterklasse, die sie nutzt. Obwohl wir diesen Snippet nicht in einem Online-Editor ausführen, demonstriert der Code Best Practices für abstraktes Klassendesign.

Schritt 1: Abstrakte Klasse definieren

Wir erstellen eine abstrakte Klasse namens Tutorial, die eine einzelne virtual-Methode enthält. Das virtual-Schlüsselwort zeigt an, dass die Methode von abgeleiteten Klassen nicht überschrieben werden kann.

C# Abstrakte Klassen: Praktisches Tutorial mit Code-Beispielen

Code-Erklärung

  1. Wir deklarieren die Klasse mit dem abstract-Schlüsselwort, um direkte Instanziierung zu verhindern.
  2. Innerhalb der Klasse ist die Set-Methode als public virtual void Set() definiert, damit Unterklassen sie unverändert erben.

Schritt 2: Abgeleitete Klasse erstellen

In derselben Datei definieren wir eine konkrete Klasse Guru99Tutorial, die von Tutorial erbt. Die Unterklasse führt eigene Eigenschaften und Methoden ein, während sie den von der abstrakten Basisklasse festgelegten Vertrag respektiert.

C# Abstrakte Klassen: Praktisches Tutorial mit Code-Beispielen

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication {
    abstract class Tutorial {
        public virtual void Set() {
            // Basimplementierung (aktuell leer)
        }
    }
    class Guru99Tutorial : Tutorial {
        protected int TutorialID;
        protected string TutorialName;
        public void SetTutorial(int pID, string pName) {
            TutorialID = pID;
            TutorialName = pName;
        }
        public string GetTutorial() {
            return TutorialName;
        }
        static void Main(string[] args) {
            Guru99Tutorial pTutor = new Guru99Tutorial();
            pTutor.SetTutorial(1, ".Net");
            Console.WriteLine(pTutor.GetTutorial());
            Console.ReadKey();
        }
    }
}

Der entscheidende Punkt ist, dass Guru99Tutorial die in Tutorial definierte Set-Methode nicht neu deklarieren kann; es muss die geerbte Version unverändert verwenden.

Zusammenfassung

Abstrakte Klassen in C# bieten ein robustes Fundament für den Aufbau erweiterbarer Systeme. Indem sie gemeinsames Verhalten in einer nicht instanziierbaren Basisklasse deklarieren, erzwingen Entwickler einen Vertrag, während abgeleitete Klassen konkrete Implementierungen liefern. Dieses Muster fördert Code-Wiederverwendung, Klarheit und starke Typisierung in großen Codebasen.

C Sprache

  1. C# Abstrakte Klassen & Methoden meistern: Praktischer Leitfaden
  2. C++ Operatoren erklärt: Typen, Beispiele und Beispielprogramme
  3. C++ Structs erklärt mit praktischem Beispiel
  4. std::list in C++ meistern: Syntax, Funktionen & praktische Beispiele
  5. C++ Struct vs. Class: Wichtige Unterschiede, Syntax und beste Anwendungsfälle
  6. C# Abstrakte Klassen: Praktisches Tutorial mit Code-Beispielen
  7. Interface vs. Abstrakte Klasse in Java: Die richtige Abstraktion wählen
  8. Java Abstraktion erklärt: Code vereinfachen & Lesbarkeit steigern
  9. Datenabstraktion in C++: Interface-Implementierung-Trennung
  10. C++ Interfaces: Abstrakte Klassen & Pure Virtual Functions