Was ist abstrakte Klasse in Scala?
In Scala dient eine abstrakte Klasse als Supertyp, der Informationen zu Subtypklassen enthält. Um eine Abstraktion zu erreichen, wird die abstrakte Klasse erstellt. Abstraktion bedeutet, die Informationen der Implementierung zu verbergen und nur die spezifischen Funktionen den Endbenutzern anzuzeigen. Wir können nur eine Abstrakte einer Klasse erben, um richtig zu instanziieren. Eine abstrakte Klasse kann nicht direkt instanziiert werden. Um eine abstrakte Klasse zu konstruieren, müssen wir eine Klasse mit dem Keyword -Abstract darstellen.
Syntax der abstrakten Klasse in Scala
Die Syntax der Scala -abstrakten Klasse sieht so aus.
Abstract Class Class_Name
Def Abstract_method ()
Das Zusammenfassung wird mit dem Schlüsselwort „Zusammenfassung“ mit dem Klassennamen dargestellt. In abstrakter Klasse haben wir abstrakte Methoden angegeben. Die abstrakte Methode ist ohne Code in seinem Körper zu haben.
Wie man abstrakte Klasse in Scala in Ubuntu 20 verwendet.04
Nehmen wir ein Beispiel und sehen, wie man zusammen mit einer abstrakten Methode in Scala eine abstrakte Klasse bildet.
Beispiel Nr. 1: Erstellen einer abstrakten Klasse in Scala
Wir können eine abstrakte Klasse in einem Programm erstellen, indem wir das Schlüsselwort „abstrakt“ mit dem angegebenen Klassennamen verwenden. Lassen Sie uns einige praktische Erstellen der abstrakten Klasse haben.
Im obigen Code haben wir eine Klasse mit dem Schlüsselwort „Zusammenfassung“ deklariert und diese Klasse als „Schüler“ bezeichnet. In der abstrakten Klasse haben wir abstrakte Methoden als „Information“ definiert. Wenn wir eine abstrakte Methode in einer abstrakten Klasse definieren, benötigen wir dort keine Implementierung. Nachdem wir die abstrakte Klasse erstellt haben, haben wir eine reguläre Klasse mit dem Namen "Grad" erstellt. Diese Klasse „Grad“ erweitert die abstrakte Klasse. Hier zeigt die abstrakte Methode „Information“ den Schülernamen und den Studiennamen an. Dann haben wir eine Hauptmethode, bei der wir das Objekt „Grad“ definieren müssen. Wir haben eine variable OBJ erstellt und dies der Instanz der "Grad" -Klasse zugewiesen. Wir haben ein neues Schlüsselwort verwendet, um die Klasse zu instanziieren. Wir verwenden die OBJ -Instanz mit der "Informations" -Methode genannt.
Wir haben erfolgreich eine abstrakte Klasse erstellt und abstrakte Methoden in einer regulären Klasse definiert. Die Ausgabe der abstrakten Methode der abstrakten Klasse durch Druckanweisung befindet sich auf dem Terminalbildschirm.
Beispiel Nr. 2: Erstellen einer abstrakten Klasseninstanz in Scala
In Scala können wir eine abstrakte Klasse nicht explizit instanziieren. Wenn wir dies versuchen, haben wir einen Kompilierungsfehler. Im Folgenden versuchen wir, eine abstrakte Klasse zu instanziieren, indem wir eine Instanz der Zusammenfassung erstellen, um zu wissen, welche Fehlermeldung sie geben wird.
In der obigen Code -Implementierung haben wir eine abstrakte Klasse mit dem Schlüsselwort „abstrakt“ erstellt und den Namen der Klasse als „Universität“ gegeben. Dann haben wir ohne Körper die abstrakte Methode definiert. Die abstrakte Methode wird in der Hauptmethode verwendet. Wir haben in der Hauptfunktion der abstrakten Klasse ein Objekt der Klasse „Universität“ erstellt. Dann haben wir dieses Objekt der Instanz der abstrakten Klasse „Universität“ mit dem neuen Keyword zugewiesen. Dies wird die abstrakte Klasse instanziieren.
Wir haben eine Fehlermeldung als Ausgabe, die wir die abstrakte Klasse nicht instanziieren können. Infolgedessen können wir keine Objekte von abstrakten Klassen generieren.
Beispiel 3: Erstellen von Feldern in abstrakter Klasse in Scala
Wir können auch Felder in abstrakter Klasse definieren. Die abstrakte Klasse hat auf diese Felder zugegriffen und dann die abstrakte Methode der Klasse die abstrakte Klasse geerbt. Nachfolgend finden Sie die Implementierung des angezeigten Code.
Im obigen Code haben wir eine abstrakte Klasse mit dem Schlüsselwort „Abstract“ erstellt und diese Klasse „Lehrer“ bezeichnet, die benannt wurden. In der abstrakten Klasse enthalten die Felder eine Variable als "lehrer_name", die mit dem Zeichenfolgenwert initialisiert wird und einen festgelegten Datentyp -String enthält. Das zweite Feld ist auch mit der Variablen, die als "lerner_subject" definiert ist, das ebenfalls als String -Datentyp festgelegt und mit dem Zeichenfolgenwert initialisiert wird. Hier ist der „lerner_detail“ eine abstrakte Methode der abstrakten Klasse „Lehrer“. Jetzt wird „CS“ als eine Klasse deklariert, die die abstrakte Klasse erweitert. In dieser Klasse greifen wir auf die abstrakte Klassenmethode und die Felder der abstrakten Klasse zu, indem wir die abstrakte Methode aufrufen. Wir haben ein Objekt erstellt, um die Klasse zu instanziieren. Dann verwenden wir eine OBJ -Instanz mit der Klassenmethode von „CS“.
Wir haben den Namen des Lehrers und die Details des Lehrers als Ausgabe unten.
Beispiel 4: Erstellen eines Konstruktors in Scala
Wir können einen abstrakten Klassenkonstruktor im Code erstellen. Wir können den Konstruktor verwenden, um ein Objekt zu initialisieren, aber das Objekt kann dort nicht erstellt werden. Wenn wir eine Instanz einer ererbten Klasse erstellen, können wir einen Konstruktor einer abstrakten Klasse nennen.
Im obigen Code haben wir zusammen mit dem Konstruktor eine abstrakte Klasse als „Buch“ deklariert. Der Konstruktor einer abstrakten Klasse nimmt zwei Argumente als „Titel“ und „Autor“ in der abstrakten Klasse auf. Erweitern Sie nun die abstrakte Klasse mit der Klasse „Roman“. Die Klasse „Roman“ zugreift auf die abstrakte Methode und gibt die Konstruktor -Werte zurück, die die Ausgabe des obigen Implementierungscodes ausgibt.
Abschluss
Da wir die Bedeutung der abstrakten Klasse diskutiert haben, ist sie in Scala sehr nützlich. Wir haben eine kurze Einführung und Definition einer abstrakten Klasse in Scala. Außerdem haben wir die verschiedenen Beispielcode -Implementierungen durchlaufen. Wir hatten eine tiefe Diskussion über die abstrakte Klasse in Scala. Nach dem Lesen des Artikels werden Sie die abstrakte Klasse in Scala stark im Griff haben.