C# abstrakte Klasse

C# abstrakte Klasse

Eine abstrakte Klasse befasst sich mit dem Abstraktionsprozess. Es ist ein Phänomen, bei dem die Details einer Methode versteckt sind und nur die Funktionalität gezeigt wird. Es ist keine vollständige Implementierung. Wir können eine abstrakte Klasse nicht direkt instanziieren. Es kann erstellt werden, ohne eine abstrakte Methode zu verwenden. Der elementare Zweck einer abstrakten Klasse besteht darin, einen Leitfaden für alle abgeleiteten Klassen anzubieten, die von ihr geerbt wurden.

Die Syntax für abstrakte Klasse:

Zusammenfassung Klassenprobe

Ein 'abstraktes' Schlüsselwort wird verwendet, um eine abstrakte Klasse zu generieren. Während es im Fall einer abstrakten Funktion enthält, enthält es niemanden, der nur innerhalb der Klasse deklariert ist. Eine abstrakte Methode wird innerhalb des abgeleiteten oder in allen nicht abstrakten Klassen sagen, indem Sie ein Schlüsselwort "Überschreibung" verwenden. Unter Verwendung dieses Schlüsselworts befindet sich eine abstrakte Methode nicht im Zustand der Abstraktion. Es kann als reguläre Funktion verwendet werden. Eine abgeleitete Klasse, die das Kind der abstrakten Klasse ist.

Die Syntax für eine abstrakte Methode:

Öffentliche abstrakte void smp ();

Struktur einer abstrakten Klasse

Eine abstrakte Klasse wird hauptsächlich im Vererbungsprozess verwendet. Strukturen können keine abstrakte Klasse überschreiben. Eine abstrakte Klasse ist nicht für multiple Erbschaften zugunsten. In ähnlicher Weise kann eine abstrakte Klasse nicht als statische Klasse deklariert werden, da eine statische Klasse nicht abgeleitet werden kann.

Beispiel 1

Um das Konzept einer abstrakten Klasse zu implementieren, haben wir ein Beispielprogramm erstellt. In dem wir eine Klassenprobe mit dem Schlüsselwort Abstract verwendeten. In der Klasse wird eine abstrakte Methode angegeben. Die abstrakte Klasse hat immer eine abstrakte Methode.

Public abstract class sample ()
Öffentliche abstrakte void smp] ();

Da wir nur die Funktionalität der abstrakten Methoden innerhalb der abstrakten Klasse definieren, anstatt die Funktionsweise der Funktionen zu erklären, wird hier nur der Kopfzeilen der Funktion deklariert.

Auf eine abstrakte Klasse kann nicht direkt zugegriffen werden, da wir kein Objekt davon erstellen. Es soll eine Dummy-Klasse oder eine nichtaktive Klasse sein, bis sie aktiv wird, indem ein Objekt der von ihr abgeleiteten Klasse erstellt wird. Daher werden wir die Klassenprobe von der Basis -abstrakten Klassenprobe steuern. Diese Klasse ist nicht abstrakt. Die Probenklasse wird in der Kinderklasse Probe1 vererbt. Die Art und Weise, eine inhärente Klasse aus der Basisklasse darzustellen. Hier ist Sample1 eine abgeleitete Klasse.

# Public Class Sample1: Beispiel

Wenn wir eine Klasse aus der abstrakten Klasse erben, kann sie die Funktionen und die in der abstrakten Klasse vorhandenen Methoden verwenden. Zum Beispiel kann die SMP () -Methode in der Sample1 -Klasse deklariert werden. Es wird mit dem Schlüsselwort 'Override' geschrieben, um darzustellen, dass es von einer abstrakten Klasse geerbt wird. Eine einfache Anweisung wird im Programm angezeigt.

# Public Override void SMP ()

In ähnlicher Weise wird ein weiterer Klassenprob. Und es verwendet auch die Override -Methode SMP (). Um die abstrakte Klasse zu initialisieren, werden wir kein Objekt dafür erstellen. Aber die Instanz der abgeleiteten oder der Kinderklasse wird instanziiert. Die abstrakte Klasse wird automatisch aktiv und kann durch das Erstellen des Objekts leicht zugegriffen werden.

# Proben;

's' ist das Objekt der Stichprobenklasse; Es wird erstellt, aber nicht instanziiert.

# S = neuer Sample1 ()

Diese dynamische Erstellung wird die Klasse Sample1 mit einem „neuen“ Operator in der Klasse instanziieren. Wir werden nun über dieses Objekt auf die in der abstrakte Klasse deklarierte Funktion zugreifen.

Ebenso wird das gleiche Objekt für die Sample2 -Klasse erstellt. Und dann werden wir die Funktion von der übergeordneten Klasse aufrufen. Wenn wir das Objekt für die Klasse instanziieren, verwenden wir es für den Funktionsaufruf im nächsten Schritt und machen es sofort für die in der Klasse verwendete Funktion angegeben.

Speichern Sie den Code; Wir werden es im Ubuntu -Terminal ausführen, den MCS -Compiler verwenden, um den Code zu kompilieren, und Mono, um ihn auszuführen.

$ Mcs Datei.CS
$ mono -Datei.exe

Bei der Ausführung sehen Sie, dass beide Werte innerhalb der Funktionen angezeigt werden.

Beispiel 2

Durch die Verwendung einer abstrakten Klasse werden wir nun die Fläche berechnen. Es wird also eine abstrakte Klasse für den Bereich erstellt, bei dem eine abstrakte Methode für den Bereich definiert wird.

Abstract Class AreaClass
Abstrakte öffentliche int Area ();

Ein abgeleiteter Klassenquadrat wird aus der Basisklasse geerbt. Dies berechnet die Fläche, indem die abstrakte Methode darin verwendet wird. Erstens wird eine Variable deklariert, um die Nummer aus dem Hauptprogramm zu erhalten.

# Klasse Square: AreaClass Class

Ein Konstruktor wird erstellt, um den gesendeten Wert aus dem Hauptprogramm zuzuweisen. Dann wird die Funktion von der abstrakten Klasse überschrieben. Diese Methode berechnet die Fläche des Quadrats durch Multiplizieren beider Seiten.

Erstellen Sie eine andere Klasse, um das Hauptprogramm zu deklarieren. Hier wird das Objekt für die untergeordnete Klasse erstellt und instanziiert, da wir die Nummer an den Konstruktor der quadratischen Klasse senden müssen, um das Objekt zu erstellen.

# Square S = neues Quadrat (15);

Durch die Verwendung desselben Objekts wird die Funktion aufgerufen.

S.Bereich ();

Die Konsole druckt den von der Funktion berechneten Bereich.

Beispiel 3

Die abstrakte Klasse muss nicht alle abstrakten Methoden enthalten. Aber auch nicht abstrakte Methoden können in einer abstrakten Klasse angegeben werden. Wir haben das folgende Beispiel verwendet, um dieses Konzept zu erläutern. Erstellen Sie eine abstrakte Klasse. Eine einfache Funktion wird erstellt und befindet.

# Public int sum (int num1, int num2)

Nach der Deklaration der regulären Funktion wird eine abstrakte Methode definiert, aber sein Körper wird hier nicht deklariert, da es sich um eine abstrakte Funktion handelt.

# Public abstract int multiply (int num1, int num2)

Nach der abstrakten Klasse erstellen wir eine abgeleitete Klasse, die die abstrakte Funktion der Multiplikation erben wird.

Klasse abgeleitet: AbstractClass
Public Override Int multiplizieren (int num1, int num2)

Diese Funktion multipliziert beide Werte und gibt dann die Antwort zurück.

Jetzt werden wir ein Hauptprogramm erstellen, um das Objekt zu erstellen.

Abgeleitet d = neu abgeleitet ();
D.Summe (20, 8);
D.multiplizieren (20, 8);

Abschluss

Eine abstrakte Klasse in C Sharp wird erstellt, um die Informationen zu verbergen, indem nur der Header der Funktion definiert wird. Diese abstrakte Klasse ist nicht funktionsfähig, bis eine andere Kinderklasse dadurch abgeleitet wird. Eine abstrakte Klasse wird in der Vererbung verwendet; Andernfalls ist die Erklärung einer abstrakten Klasse nutzlos. Aufgrund der Vererbung greifen wir darauf zu, indem wir das Objekt für die Kinderklasse erstellen und instanziieren. Es ist nicht obligatorisch, dass eine abstrakte Klasse alle abstrakten Methoden darin haben muss. Wir haben die Arbeit und Erklärung einer abstrakten Klasse erklärt, indem wir einige Beispiele verwendet und in Ubuntu implementiert haben.