Introduzione alle classi astratte in JavaScript

JavaScript è un linguaggio orientato agli oggetti poiché la maggior parte degli elementi in javascript sono oggetti che si aspettano i tipi di dati primitivi.

Nella programmazione orientata agli oggetti (OOP), il concetto di astrazione è quello di nascondere i dettagli implementativi e mostrare agli utenti le caratteristiche essenziali dell'oggetto. Questa caratteristica di astrazione di OOP migliora la comprensibilità e la manutenibilità del codice che scriviamo e riduce la duplicazione del codice. Poiché l'astrazione viene utilizzata la maggior parte del tempo in linguaggi di programmazione come Java, applicheremo questa funzione in JavaScript.

In Post astratti nel post del blog JavaScript, discuteremo di Classi astratte in JavaScript. Prima di approfondire l'implementazione della classe astratta in JavaScript, comprendiamo quali sono le classi astratte.

Cosa sono le classi astratte?

  • Le classi astratte possono essere definite come classi che non possono essere istanziate, ovvero il cui riferimento oggetto non può essere creato e contiene al suo interno uno o più metodi astratti.
  • Un metodo astratto è un metodo che può essere dichiarato solo ma non ha alcuna implementazione. Le classi astratte devono essere ereditate e richiedono sottoclassi per fornire implementazioni per il metodo dichiarato nella classe astratta.
  • Come in Java, abbiamo la parola chiave astratta per rendere una classe una classe astratta, non esistono parole chiave di riserva in JavaScript per dichiarare una classe una classe astratta.
  • Nell'esempio seguente codificheremo alcune righe in JavaScript per verificare se siamo in grado di creare una classe astratta e vedere se possiamo soddisfarne o meno le proprietà.

Esempi di classe astratta in JavaScript

Vediamo alcuni degli esempi con l'aiuto del codice del programma

Esempio n. 1: creazione di classi astratte

Codice:



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

Produzione -

Spiegazione del codice sopra

Nello scenario di codice sopra, abbiamo creato una funzione di costruzione Employee che funge da classe astratta. Abbiamo anche creato una funzione di visualizzazione per verificare il nome del dipendente. Nell'ultima riga di JavaScript, creiamo un riferimento a un oggetto o un'istanza (dipendente) della nostra classe astratta Employee per verificare se l'oggetto viene creato o se viene visualizzato un errore tramite la funzione di visualizzazione.

Ora, estendendo ulteriormente l'esempio sopra, creeremo un'altra funzione che estende le proprietà e i metodi del nostro dipendente di classe astratta. In termini di Java, creeremo una sottoclasse e il nostro Dipendente sarà la superclasse.

Esempio n. 2: estensione della classe astratta

Codice:



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

Produzione

Spiegazione del codice sopra

Nell'esempio di codice sopra riportato, abbiamo raggiunto l'astrazione creando un manager di funzione / classe che estende il nostro dipendente di classe astratto attraverso la catena di prototipi (un concetto importante in JavaScript, attraverso il quale si ottiene l'eredità). I dettagli implementativi sono nascosti all'utente e accedono solo alle funzionalità che soddisfano le sue esigenze.

Negli esempi 1 e 2 precedenti, siamo in grado di raggiungere l'astrazione, sebbene in realtà non abbiamo soddisfatto tutte le proprietà della classe astratta. Secondo la definizione di classi astratte, il suo oggetto non può essere creato e dovrebbe avere uno o più metodi astratti.

Con il rilascio di ES6, JavaScript è diventato molto più semplice e ha introdotto nuove funzionalità in classi come in Java e le sue funzionalità aggiuntive. Vediamo un esempio di seguito in cui implementiamo una classe in JavaScript insieme alle proprietà di astrazione.

Esempio n. 3: classe astratta: il codice completo

Codice:



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

Uscita 1 - Uscita corretta

Uscita 2 - Commenta super.display ()

Output 3 - Comment var var emp = new Employee ()

Spiegazione del codice sopra

Lo snippet di codice sopra sembra quasi un codice java con classi, costruttori, metodi e oggetti definiti, questa è la magia del rilascio di ES6. Tornando ora al codice, possiamo vedere che la classe Employee è una classe astratta e visualizza un errore quando viene creato il suo oggetto (Output 3) e contiene un metodo astratto display () la cui implementazione è definita nel metodo display () di Manager classe che estende le proprietà e i metodi della classe Employee.

Conclusione

Dobbiamo tenere a mente mentre ci si occupa dell'astrazione è che non si può creare un'istanza di una classe astratta. In conclusione, abbiamo imparato come l'astrazione di un concetto OOP può essere implementata in JavaScript e in grado di implementare una classe astratta con tutte le sue proprietà soddisfatte.

Articoli consigliati

Questa è una guida alle classi astratte in JavaScript. Qui discutiamo l'introduzione alle classi astratte in JavaScript, quali sono le classi astratte insieme ad esempi appropriati. Puoi anche consultare i nostri altri articoli suggeriti per saperne di più–

  1. Novità di Java 8
  2. Sostituzione in OOP
  3. Alternative Python
  4. Tipi di diagrammi UML
  5. Parole chiave PHP
  6. Tipi di dati PL / SQL
  7. Lancio contro Lancio | Le 5 differenze principali che dovresti conoscere
  8. Diverse prime 36 parole chiave in SQL con esempi
  9. Guida ai diversi tipi di dati C #
  10. Diversi tipi di dati SQL con esempi

Categoria: