Introducción a las clases abstractas en JavaScript

JavaScript es un lenguaje orientado a objetos, ya que la mayoría de los elementos en JavaScript son objetos que esperan los tipos de datos primitivos.

En la Programación Orientada a Objetos (OOP), el concepto de abstracción es ocultar los detalles de implementación y mostrar las características esenciales del objeto a sus usuarios. Esta característica de abstracción de OOP mejora la comprensibilidad y mantenibilidad del código que escribimos y reduce la duplicación del código. Dado que la abstracción se usa la mayor parte del tiempo en lenguajes de programación como Java, aplicaremos esta función en JavaScript.

En la publicación del blog Clases abstractas en JavaScript, discutiremos las Clases abstractas en JavaScript. Antes de sumergirnos en la implementación de la clase abstracta en JavaScript, comprendamos qué son las clases abstractas.

¿Qué son las clases abstractas?

  • Las clases abstractas se pueden definir como clases que no se pueden instanciar, es decir, cuya referencia de objeto no se puede crear y contiene dentro de ella, uno o más métodos abstractos.
  • Un método abstracto es un método que solo puede declararse pero no tiene implementación. Las clases abstractas deben heredarse y requieren subclases para proporcionar implementaciones para el método declarado en la clase abstracta.
  • Al igual que en Java, tenemos la palabra clave abstracta para convertir una clase en una clase abstracta, no existen tales palabras clave de reserva en JavaScript para declarar una clase como una clase abstracta.
  • En el siguiente ejemplo codificaremos algunas líneas en JavaScript para verificar si podemos crear una clase abstracta y ver si podemos satisfacer sus propiedades o no.

Ejemplos de clase abstracta en JavaScript

Veamos algunos de los ejemplos con la ayuda del código del programa.

Ejemplo # 1: Creación de clase abstracta

Código:



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

Salida -

Explicación del código anterior.

En el escenario de código anterior, hemos creado una función constructora Empleado que actúa como una clase abstracta. También hemos creado una función de visualización para verificar el nombre del Empleado. En la última línea del JavaScript, creamos una referencia de objeto o una instancia (empleado) de nuestra clase abstracta Empleado para verificar si el objeto se está creando o si se muestra un error a través de la función de visualización.

Ahora, ampliando aún más el ejemplo anterior, crearemos otra función que amplíe las propiedades y los métodos de nuestra clase abstracta Empleado. En términos de Java, crearemos una subclase y nuestro Empleado será la superclase.

Ejemplo # 2: Extendiendo la clase abstracta

Código:



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

Salida

Explicación del código anterior.

En el ejemplo de código anterior, logramos la abstracción al crear un administrador de función / clase que extiende nuestra clase abstracta Empleado a través de la cadena de prototipo (un concepto importante en JavaScript, a través del cual se logra la herencia). Los detalles de implementación están ocultos para el usuario y acceden solo a las funciones que satisfacen sus requisitos.

En los ejemplos anteriores 1 y 2, hemos podido lograr la abstracción, aunque realmente no hemos satisfecho todas las propiedades de la clase abstracta. Según la definición de clases abstractas, su objeto no se puede crear y debe tener uno o más métodos abstractos.

Con el lanzamiento de ES6, JavaScript se volvió mucho más simple e introdujo nuevas características en él de clases como en Java y sus características adicionales. Veamos un ejemplo a continuación donde implementamos una clase en JavaScript junto con propiedades de abstracción.

Ejemplo # 3: Clase abstracta - El código completo

Código:



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

Salida 1 - Salida correcta

Salida 2 - Comenta super.display ()

Producto 3 : comentar var emp = nuevo empleado ()

Explicación del código anterior.

El fragmento de código anterior casi parece un código java con clases, constructores, métodos y objetos que se están definiendo, esta es la magia de la publicación de ES6. Ahora volviendo al código, podemos ver que la clase Employee es una clase abstracta y muestra un error cuando se crea su objeto (Salida 3) y contiene un método abstracto display () cuya implementación se define en el método display () del Administrador clase que extiende las propiedades y métodos de la clase Employee.

Conclusión

Al tratar con la abstracción, debemos tener en cuenta que no se puede crear una instancia de una clase abstracta. En conclusión, aprendimos cómo la abstracción de un concepto OOP puede implementarse en JavaScript y ser capaz de implementar una clase abstracta con todas sus propiedades satisfechas.

Artículos recomendados

Esta es una guía de clases abstractas en JavaScript. Aquí discutimos la introducción a las clases abstractas en JavaScript, ¿Qué son las clases abstractas? Junto con los ejemplos apropiados. También puede consultar nuestros otros artículos sugeridos para obtener más información:

  1. ¿Qué hay de nuevo en Java 8?
  2. Anulación en POO
  3. Alternativas a Python
  4. Tipos de diagramas UML
  5. Palabras clave PHP
  6. Tipos de datos PL / SQL
  7. Lanzamiento vs Lanzamientos | Las 5 principales diferencias que debes saber
  8. Diferentes palabras clave principales 36 en SQL con ejemplos
  9. Guía de diferentes tipos de datos de C #
  10. Diferentes tipos de datos SQL con ejemplos