Einführung in abstrakte Klassen in JavaScript

JavaScript ist eine objektorientierte Sprache, da die meisten Elemente in JavaScript Objekte sind, die primitive Datentypen erwarten.

In der objektorientierten Programmierung (Object-Oriented Programming, OOP) besteht das Konzept der Abstraktion darin, die Implementierungsdetails zu verbergen und den Benutzern wesentliche Merkmale des Objekts vorzustellen. Diese Abstraktionsfunktion von OOP verbessert die Verständlichkeit und Wartbarkeit des von uns geschriebenen Codes und verringert die Duplizierung des Codes. Da Abstraktion in Programmiersprachen wie Java am häufigsten verwendet wird, wenden wir diese Funktion in JavaScript an.

In Abstract Classes in JavaScript-Blogbeiträgen werden wir Abstract Classes in JavaScript diskutieren. Bevor wir uns mit der Implementierung der abstrakten Klasse in JavaScript befassen, werden wir verstehen, was abstrakte Klassen sind.

Was sind abstrakte Klassen?

  • Abstrakte Klassen können als Klassen definiert werden, die nicht instanziiert werden können, dh deren Objektreferenz nicht erstellt werden kann und in der eine oder mehrere abstrakte Methoden enthalten sind.
  • Eine abstrakte Methode ist eine Methode, die nur deklariert werden kann, aber keine Implementierung hat. Abstrakte Klassen müssen vererbt werden und benötigen Unterklassen, um Implementierungen für die in der abstrakten Klasse deklarierte Methode bereitzustellen.
  • Wie in Java haben wir das Schlüsselwort abstract, um eine Klasse zu einer abstrakten Klasse zu machen. In JavaScript gibt es keine solchen Schlüsselwörter reserve, um eine Klasse zu einer abstrakten Klasse zu erklären.
  • Im folgenden Beispiel codieren wir einige Zeilen in JavaScript, um zu überprüfen, ob wir eine abstrakte Klasse erstellen können und ob wir deren Eigenschaften erfüllen können oder nicht.

Beispiele für abstrakte Klassen in JavaScript

Sehen wir uns einige Beispiele mit Hilfe von Programmcode an

Beispiel # 1: Abstrakte Klassenerstellung

Code:



//Created an abstract class (constructor function)
function Employee()
(
this.empName= "empName";
if(this.constructor === Employee)(
throw new Error("FYI: Instance of Abstract class cannot be instantiated");
)
) ;
// Method (function) of our abstract class
Employee.prototype.display=function()
( return this.empName; )
var employee = new Employee();

Ausgabe -

Erklärung des obigen Codes

Im obigen Codeszenario haben wir eine Konstruktorfunktion Employee erstellt, die als abstrakte Klasse fungiert. Wir haben auch eine Anzeigefunktion erstellt, um den Namen des Mitarbeiters zu überprüfen. In der letzten Zeile des JavaScript erstellen wir eine Objektreferenz oder eine Instanz (Mitarbeiter) unserer abstrakten Klasse Employee, um zu überprüfen, ob das Objekt erstellt wird oder ein Fehler über die Anzeigefunktion angezeigt wird.

Wenn wir nun das obige Beispiel weiter erweitern, werden wir eine weitere Funktion erstellen, die die Eigenschaften und Methoden unserer abstrakten Klasse Employee erweitert. In Bezug auf Java werden wir eine Unterklasse erstellen und unser Mitarbeiter wird die Oberklasse sein.

Beispiel 2: Erweitern der abstrakten Klasse

Code:



//Created an abstract class (constructor function)
function Employee()
(
this.empName="empName";
if(this.constructor === Employee)(
throw new Error("You cannot create an instance of Abstract Class");
)
);
// Method (function) of our abstract class
Employee.prototype.display=function()
(
return "Employee name is: "+this.empName;
)
//Created a subclass (constructor function)
function Manager(fullName)
(
this.empName=fullName;
)
//Created an object of subclass (extending abstract class)
Manager.prototype=Object.create(Employee.prototype);
var mang=new Manager("Aniket Davda");
console.log(mang.display());

Ausgabe

Erklärung des obigen Codes

Im obigen Codebeispiel haben wir eine Abstraktion erzielt, indem wir einen Funktions- / Klassenmanager erstellt haben, der unsere abstrakte Klasse Employee durch die Prototypkette erweitert (ein wichtiges Konzept in JavaScript, durch das die Vererbung erreicht wird). Die Implementierungsdetails sind dem Benutzer verborgen und greifen nur auf die Funktionen zu, die seinen Anforderungen entsprechen.

In den obigen Beispielen 1 und 2 ist es uns gelungen, eine Abstraktion zu erzielen, obwohl wir nicht alle Eigenschaften der abstrakten Klasse erfüllt haben. Gemäß der Definition von abstrakten Klassen kann sein Objekt nicht erstellt werden und sollte eine oder mehrere abstrakte Methoden haben.

Mit der Veröffentlichung von ES6 wurde JavaScript viel einfacher und führte neue Funktionen in Klassen wie Java und seinen zusätzlichen Funktionen ein. Nachfolgend sehen wir ein Beispiel, in dem wir eine Klasse in JavaScript zusammen mit Abstraktionseigenschaften implementieren.

Beispiel # 3: Abstrakte Klasse - Der vollständige Code

Code:



class Employee
(
constructor() (
if(this.constructor == Employee)(
throw new Error(" Object of Abstract Class cannot be created");
)
)
display()(
throw new Error("Abstract Method has no implementation");
)
)
class Manager extends Employee
(
display()(
//super.display();
console.log("I am a Manager");
)
)
//var emp = new Employee;
var mang=new Manager();
mang.display();

Ausgang 1 - Richtige Ausgabe

Ausgang 2 - super.display auskommentieren ()

Output 3 - Kommentar aus var emp = new Employee ()

Erklärung des obigen Codes

Das obige Code-Snippet sieht fast wie ein Java-Code aus, in dem Klassen, Konstruktoren, Methoden und Objekte definiert sind. Dies ist die Magie der Veröffentlichung von ES6. Kommen wir nun zum Code zurück, sehen wir, dass die Employee-Klasse eine abstrakte Klasse ist und einen Fehler anzeigt, wenn ihr Objekt erstellt wird (Ausgabe 3) und eine abstrakte Methode display () enthält, deren Implementierung in der display () -Methode von Manager definiert ist Klasse, die die Eigenschaften und Methoden der Employee-Klasse erweitert.

Fazit

Beim Umgang mit Abstraktion müssen wir berücksichtigen, dass man keine Instanz einer abstrakten Klasse erstellen kann. Abschließend haben wir gelernt, wie Abstraktion ein OOP-Konzept in JavaScript implementiert und in der Lage ist, eine abstrakte Klasse zu implementieren, bei der alle Eigenschaften erfüllt sind.

Empfohlene Artikel

Dies ist eine Anleitung zu abstrakten Klassen in JavaScript. Hier diskutieren wir die Einführung in abstrakte Klassen in JavaScript, Was sind abstrakte Klassen zusammen mit entsprechenden Beispielen. Sie können auch unsere anderen Artikelvorschläge durchgehen, um mehr zu erfahren.

  1. Was ist neu in Java 8?
  2. Überschreiben in OOPs
  3. Python-Alternativen
  4. Arten von UML-Diagrammen
  5. PHP-Schlüsselwörter
  6. PL / SQL-Datentypen
  7. Werfen vs wirft | Die 5 wichtigsten Unterschiede, die Sie kennen sollten
  8. Unterschiedliche Top 36-Schlüsselwörter in SQL mit Beispielen
  9. Leitfaden zu verschiedenen C # -Datentypen
  10. Verschiedene Arten von SQL-Daten mit Beispielen