Was ist Abstract Class in C #?
Abstract Class kann niemals instanziiert werden und ist mit dem Schlüsselwort abstract gekennzeichnet. Eine abstrakte Klasse enthält null oder mehr abstrakte Methoden. Die abstrakte Klasse fungiert als Basisklasse und soll von Unterklassen geerbt werden, die ihre Methode entweder implementieren oder überschreiben.
Lassen Sie uns die abstrakte Klasse in C # anhand des folgenden Beispiels lernen. Unten finden Sie die Definition einer Klasse namens "Tier". Wenn die Klasse "Tier" definiert ist, ist nichts über das Tier bekannt, ob es sich um einen Hund oder eine Katze handelt. Die als Beschreibung bezeichnete Methode ist nur eine generische Methode, die für die Klasse definiert ist.
Wenn nun bekannt ist, was genau das Tier sein wird, erstellen wir eine weitere Klasse, die die Basisklasse erbt. Wenn wir wissen, dass das Tier tatsächlich ein Hund ist, erstellen wir eine Hundeklasse, die die Hauptbasisklasse erbt. Der Hauptunterschied besteht darin, dass die Dog-Klasse die Definition der Description-Methode der Animal-Klasse nicht ändern kann. Es muss eine eigene abstrakte C # -Methode namens Dog-Description definieren. Dies ist das Grundkonzept von abstrakten C # -Klassen.
Sehen wir uns die abstrakte Klasse in C # mit einem Echtzeitbeispiel an, wie wir unseren Code so ändern können, dass er eine abstrakte C # -Klasse enthält. Beachten Sie, dass der Code nicht ausgeführt wird, da mit einer C # -Abstraktionsklasse nichts ausgeführt werden kann.
Schritt 1) Als ersten Schritt erstellen wir eine abstrakte Klasse. Die Klasse heißt Tutorial und hat nur eine Methode. Der gesamte Code muss in die Datei Program.cs geschrieben werden.
Code Erläuterung: -
- Wir definieren zuerst die abstrakte Klasse. Beachten Sie die Verwendung des abstrakten Schlüsselworts. Dies wird verwendet, um anzuzeigen, dass die Klasse eine abstrakte Klasse ist.
- Als nächstes definieren wir unsere Methode, die nichts bewirkt. Die Methode muss das Schlüsselwort virtual haben. Dies bedeutet, dass die Methode von der untergeordneten Klasse nicht geändert werden kann. Dies ist eine Grundvoraussetzung für jede abstrakte Klasse.
Schritt 2) Fügen wir nun unsere Kinderklasse hinzu. Dieser Code wird der Datei Program.cs hinzugefügt.
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(){}}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();}}}
An diesem Code ist nichts Außergewöhnliches. Wir definieren nur eine Klasse namens 'Guru99Tutorial', die die abstrakte Tutorial-Klasse erbt. Wir definieren dann die gleichen Methoden, die wir zuvor verwendet haben.
Hinweis: Hier können wir die Definition der Set-Methode, die in der Tutorial-Klasse definiert wurde, nicht ändern. In der Tutorial-Klasse hatten wir eine Methode namens 'Set' (public virtual void Set ()) definiert. Da die Methode Teil der abstrakten Klasse C # war, dürfen wir die Set-Methode in der Guru99Tutorial-Klasse nicht erneut definieren.