Introduksjon til abstrakte klasser i JavaScript

JavaScript er et objektorientert språk siden de fleste elementene i javascript er objekter som forventer de primitive datatypene.

I Objektorientert programmering (OOP) er abstraksjonsbegrepet å skjule implementeringsdetaljene og vise frem viktige funksjoner i objektet for brukerne. Denne abstraksjonsfunksjonen ved OOP forbedrer forståelsen og vedlikeholdbarheten til koden vi skriver og reduserer dupliseringen av koden. Siden abstraksjon blir brukt mest i programmeringsspråk som Java, bruker vi denne funksjonen i JavaScript.

I Abstract Classes in JavaScript-blogginnlegget vil vi diskutere Abstract Classes i JavaScript. Før vi dykker ned i implementeringen av abstrakt klasse i JavaScript, kan vi forstå hva abstrakte klasser er.

Hva er abstrakte klasser?

  • Abstrakte klasser kan defineres som klasser som ikke kan instantieres, dvs. hvis objektreferanse ikke kan opprettes og inneholder i det, en eller flere abstrakte metoder.
  • En abstrakt metode er en metode som bare kan erklæres, men som ikke har noen implementering av den. Abstrakte klasser må arves og krever underklasser for å gi implementeringer av metoden som er erklært i den abstrakte klassen.
  • Som i Java, har vi det abstrakte nøkkelordet for å gjøre en klasse til en abstrakt klasse, det er ingen slike reserve nøkkelord i JavaScript for å erklære en klasse som en abstrakt klasse.
  • I eksemplet nedenfor vil vi kode noen få linjer i JavaScript for å sjekke om vi kan lage en abstrakt klasse og se om vi kan tilfredsstille dens egenskaper eller ikke.

Eksempler på abstrakt klasse i JavaScript

La oss se noen av eksemplene ved hjelp av programkode

Eksempel 1: Abstrakt klasseskapning

Kode:



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

Utgang -

Forklaring av koden ovenfor

I kodescenariet over har vi laget en konstruktorfunksjon Ansatt som fungerer som en abstrakt klasse. Vi har også laget en visningsfunksjon for å sjekke ansattes navn. I den siste linjen i JavaScript oppretter vi en objektreferanse eller en forekomst (ansatt) til vår abstrakte klasse Ansatt for å sjekke om objektet blir opprettet eller vises en feil gjennom skjermfunksjonen.

Nå, ved å utvide eksemplet ovenfor ytterligere, vil vi opprette en annen funksjon som utvider egenskapene og metodene til vår abstrakte klasse Ansatt. Når det gjelder Java, vil vi opprette en underklasse og vår Ansatt vil være superklassen.

Eksempel 2: Utvide den abstrakte klassen

Kode:



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

Produksjon

Forklaring av koden ovenfor

I kodeeksemplet over oppnådde vi abstraksjon ved å opprette en funksjon / klasseansvarlig som utvider vår abstrakte klasse Medarbeider gjennom prototypekjeden (et viktig konsept i JavaScript, der arv oppnås gjennom). Implementeringsdetaljene våre er skjult for brukeren og får bare tilgang til funksjonene som tilfredsstiller hans / hennes krav.

I eksemplene ovenfor 1 og 2 har vi klart å oppnå abstraksjon, selv om vi virkelig ikke har tilfredsstilt alle egenskapene til den abstrakte klassen. I henhold til definisjonen av abstrakte klasser, kan objektet ikke opprettes og bør ha en eller flere abstrakte metoder.

Med utgivelsen av ES6 ble JavaScript mye enklere og introduserte nye funksjoner i klasser som i Java og tilleggsfunksjonene. La oss se et eksempel nedenfor der vi implementerer en klasse i JavaScript sammen med abstraksjonsegenskaper.

Eksempel 3: Abstrakt klasse - den komplette koden

Kode:



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

Utgang 1 - Riktig utgang

Output 2 - Kommenter super.display ()

Utgang 3 - Kommenter var emp = ny ansatt ()

Forklaring av koden ovenfor

Ovennevnte kodebit ser nesten ut som en java-kode med klasser, konstruktører, metoder og objekter som blir definert, dette er magien med frigjøring av ES6. Nå som vi kommer tilbake til koden, kan vi se at Employee-klassen er en abstrakt klasse og viser feil når objektet er opprettet (Output 3) og inneholder en abstrakt metodevisning () hvis implementering er definert i display () -metoden til Manager klasse som utvider egenskapene og metodene til medarbeiderklassen.

Konklusjon

Vi må huske på mens det å håndtere abstraksjon er at man ikke kan lage et eksempel på en abstrakt klasse. Avslutningsvis lærte vi hvordan abstraksjon et OOP-konsept kan implementeres i JavaScript og i stand til å implementere en abstrakt klasse med alle dens egenskaper tilfredsstilt.

Anbefalte artikler

Dette er en guide til abstrakte klasser i JavaScript. Her diskuterer vi introduksjonen til abstrakte klasser i JavaScript, Hva er abstrakte klasser sammen med passende eksempler. Du kan også gå gjennom de andre foreslåtte artiklene våre for å lære mer–

  1. Hva er nytt i Java 8?
  2. Overstyring i OOP
  3. Python-alternativer
  4. Typer UML-diagrammer
  5. PHP nøkkelord
  6. PL / SQL-datatyper
  7. Kast vs kaster | Topp 5 forskjeller du burde vite
  8. Ulike Topp 36 nøkkelord i SQL med eksempler
  9. Veiledning for forskjellige C # datatyper
  10. Ulike typer SQL-data med eksempler