Inleiding tot abstracte klassen in JavaScript

JavaScript is een objectgeoriënteerde taal, aangezien de meeste elementen in javascript objecten zijn die de primitieve gegevenstypen verwachten.

In Object-Oriented Programming (OOP) is het concept van abstractie het verbergen van de implementatiedetails en het tonen van essentiële kenmerken van het object aan zijn gebruikers. Deze abstractiefunctie van OOP verbetert de begrijpelijkheid en onderhoudbaarheid van de code die we schrijven en vermindert de duplicatie van de code. Omdat abstractie meestal in programmeertalen zoals Java wordt gebruikt, zullen we deze functie in JavaScript toepassen.

In Abstract Classes in JavaScript blogpost bespreken we Abstract Classes in JavaScript. Voordat we de implementatie van abstracte klassen in JavaScript onder de loep nemen, laten we begrijpen wat abstracte klassen zijn.

Wat zijn abstracte klassen?

  • Abstracte klassen kunnen worden gedefinieerd als klassen die niet kunnen worden geïnstantieerd, dwz waarvan de objectreferentie niet kan worden gemaakt en er een of meer abstracte methoden in bevat.
  • Een abstracte methode is een methode die alleen kan worden gedeclareerd maar niet is geïmplementeerd. Abstracte klassen moeten worden geërfd en vereisen subklassen om implementaties te bieden voor de in de abstracte klasse gedeclareerde methode.
  • Net als in Java hebben we het abstracte trefwoord om van een klasse een abstracte klasse te maken, er zijn geen dergelijke reservezoekwoorden in JavaScript om een ​​klasse tot een abstracte klasse te verklaren.
  • In het onderstaande voorbeeld zullen we een paar regels in JavaScript coderen om te controleren of we een abstracte klasse kunnen maken en kijken of we aan de eigenschappen ervan kunnen voldoen of niet.

Voorbeelden van abstracte klasse in JavaScript

Laten we enkele voorbeelden bekijken met behulp van programmacode

Voorbeeld # 1: Creatie van abstracte klassen

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();

Uitgang -

Verklaring van de bovenstaande code

In het bovenstaande codescenario hebben we één constructorfunctie Medewerker gemaakt die fungeert als een abstracte klasse. We hebben ook een weergavefunctie gecreëerd om de naam van de werknemer te controleren. In de laatste regel van het JavaScript maken we een objectreferentie of een exemplaar (medewerker) van onze abstracte klasse Werknemer om te controleren of het object wordt gemaakt of een fout wordt weergegeven via de weergavefunctie.

Nu, door het bovenstaande voorbeeld verder uit te breiden, zullen we een andere functie creëren die de eigenschappen en methoden van onze werknemer van de abstracte klasse uitbreidt. In termen van Java maken we een subklasse en onze medewerker wordt de superklasse.

Voorbeeld # 2: de abstracte klasse uitbreiden

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());

uitgang

Verklaring van de bovenstaande code

In het bovenstaande codevoorbeeld hebben we abstractie bereikt door een functie- / klassenmanager te maken die onze abstracte klasse-medewerker door de prototypeketen heen breidt (een belangrijk concept in JavaScript, waardoor overerving wordt bereikt). De implementatiegegevens zijn verborgen voor de gebruiker en hebben alleen toegang tot de functies die aan zijn / haar eisen voldoen.

In de bovenstaande voorbeelden 1 en 2 kunnen we abstractie bereiken, hoewel we niet echt aan alle eigenschappen van de abstracte klasse hebben voldaan. Volgens de definitie van abstracte klassen kan het object niet worden gemaakt en moet het een of meer abstracte methoden hebben.

Met de release van ES6 werd JavaScript een stuk eenvoudiger en introduceerde het nieuwe functies in klassen zoals in Java en de extra functies. Laten we hieronder een voorbeeld bekijken waarin we een klasse in JavaScript samen met abstractie-eigenschappen implementeren.

Voorbeeld # 3: Abstracte klasse - de volledige 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();

Uitgang 1 - Juiste uitvoer

Uitgang 2 - Geef commentaar op super.display ()

Uitgang 3 - Reageren op var emp = nieuwe werknemer ()

Verklaring van de bovenstaande code

Het bovenstaande codefragment ziet er bijna uit als een java-code met klassen, constructors, methoden en objecten die worden gedefinieerd, dit is magisch voor de release van ES6. Nu we terugkeren naar de code, kunnen we zien dat de klasse Employee een abstracte klasse is en een fout weergeeft wanneer het object is gemaakt (Output 3) en een abstracte methode display () bevat waarvan de implementatie is gedefinieerd in de methode display () van Manager klasse die de eigenschappen en methoden van de klasse Werknemer uitbreidt.

Conclusie

We moeten niet vergeten dat wanneer we omgaan met abstractie, we geen instantie van een abstracte klasse kunnen creëren. Concluderend hebben we geleerd hoe abstractie een OOP-concept kan worden geïmplementeerd in JavaScript en in staat is om een ​​abstracte klasse te implementeren waarvan aan alle eigenschappen is voldaan.

Aanbevolen artikelen

Dit is een handleiding voor abstracte klassen in JavaScript. Hier bespreken we de inleiding tot abstracte klassen in JavaScript, wat zijn abstracte klassen, samen met passende voorbeelden. U kunt ook onze andere voorgestelde artikelen doornemen voor meer informatie–

  1. Wat is nieuw in Java 8?
  2. Overschrijven in OOP's
  3. Alternatieven voor Python
  4. Soorten UML-diagrammen
  5. PHP-zoekwoorden
  6. PL / SQL-gegevenstypen
  7. Gooien versus Gooien | Top 5 verschillen die u moet weten
  8. Verschillende Top 36-sleutelwoorden in SQL met voorbeelden
  9. Gids voor verschillende C # gegevenstypen
  10. Verschillende soorten SQL-gegevens met voorbeelden