Introduction aux classes abstraites en JavaScript

JavaScript est un langage orienté objet, car la plupart des éléments en javascript sont des objets attendent les types de données primitifs.

Dans la programmation orientée objet (POO), le concept d'abstraction consiste à masquer les détails de mise en œuvre et à présenter les fonctionnalités essentielles de l'objet à ses utilisateurs. Cette fonction d'abstraction de la POO améliore la compréhensibilité et la maintenabilité du code que nous écrivons et réduit la duplication du code. Étant donné que l'abstraction est la plupart du temps utilisée dans des langages de programmation comme Java, nous appliquerons cette fonctionnalité en JavaScript.

Dans le blog sur les classes abstraites en JavaScript, nous discuterons des classes abstraites en JavaScript. Avant de nous plonger dans l'implémentation de la classe abstraite en JavaScript permet de comprendre ce que sont les classes abstraites.

Que sont les classes abstraites?

  • Les classes abstraites peuvent être définies comme des classes qui ne peuvent pas être instanciées, c'est-à-dire dont la référence d'objet ne peut pas être créée et contient en son sein une ou plusieurs méthodes abstraites.
  • Une méthode abstraite est une méthode qui ne peut être déclarée que sans implémentation. Les classes abstraites doivent être héritées et nécessitent des sous-classes pour fournir des implémentations pour la méthode déclarée dans la classe abstraite.
  • Comme en Java, nous avons le mot-clé abstrait pour faire d'une classe une classe abstraite, il n'y a pas de tels mots-clés de réserve en JavaScript pour déclarer une classe une classe abstraite.
  • Dans l'exemple ci-dessous, nous allons coder quelques lignes en JavaScript pour vérifier si nous pouvons créer une classe abstraite et voir si nous pouvons satisfaire ses propriétés ou non.

Exemples de classe abstraite en JavaScript

Voyons quelques exemples à l'aide du code du programme

Exemple # 1: création d'une classe abstraite

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

Production -

Explication du code ci-dessus

Dans le scénario de code ci-dessus, nous avons créé une fonction constructeur Employee qui agit comme une classe abstraite. Nous avons également créé une fonction d'affichage pour vérifier le nom de l'employé. Dans la dernière ligne du JavaScript, nous créons une référence d'objet ou une instance (employé) de notre classe abstraite Employé pour vérifier si l'objet est en cours de création ou si une erreur est affichée via la fonction d'affichage.

Maintenant, en étendant l'exemple ci-dessus, nous allons créer une autre fonction qui étend les propriétés et les méthodes de notre classe abstraite Employee. En termes de Java, nous créerons une sous-classe et notre employé sera la superclasse.

Exemple # 2: extension de la classe abstraite

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

Production

Explication du code ci-dessus

Dans l'exemple de code ci-dessus, nous avons atteint l'abstraction en créant un gestionnaire de fonctions / classes qui étend notre classe abstraite Employee à travers la chaîne de prototypes (un concept important en JavaScript, grâce auquel l'héritage est obtenu). Les détails de mise en œuvre sont cachés à l'utilisateur et n'accèdent qu'aux fonctionnalités qui répondent à ses besoins.

Dans les exemples 1 et 2 ci-dessus, nous avons réussi à réaliser l'abstraction, bien que nous n'ayons pas vraiment satisfait toutes les propriétés de la classe abstraite. Selon la définition des classes abstraites, son objet ne peut pas être créé et doit avoir une ou plusieurs méthodes abstraites.

Avec la sortie d'ES6, JavaScript est devenu beaucoup plus simple et y a introduit de nouvelles fonctionnalités de classes comme en Java et ses fonctionnalités supplémentaires. Voyons un exemple ci-dessous où nous implémentons une classe en JavaScript avec des propriétés d'abstraction.

Exemple # 3: Classe abstraite - Le code complet

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

Sortie 1 - Sortie correcte

Sortie 2 - Commentez super.display ()

Résultat 3 - Commenter var emp = nouvel employé ()

Explication du code ci-dessus

L'extrait de code ci-dessus ressemble presque à un code java avec des classes, des constructeurs, des méthodes et des objets en cours de définition, c'est la magie de la sortie d'ES6. Revenant maintenant au code, nous pouvons voir que la classe Employee est une classe abstraite et affiche une erreur lorsque son objet est créé (sortie 3) et contient une méthode abstraite display () dont l'implémentation est définie dans la méthode display () de Manager qui étend les propriétés et les méthodes de la classe Employee.

Conclusion

Nous devons garder à l'esprit tout en traitant de l'abstraction, c'est que l'on ne peut pas créer une instance d'une classe abstraite. En conclusion, nous avons appris comment l'abstraction d'un concept OOP peut être implémentée en JavaScript et capable d'implémenter une classe abstraite avec toutes ses propriétés satisfaites.

Articles recommandés

Ceci est un guide des classes abstraites en JavaScript. Nous discutons ici de l'introduction aux classes abstraites en JavaScript, Que sont les classes abstraites ainsi que des exemples appropriés. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus–

  1. Quoi de neuf dans Java 8?
  2. Remplacement dans les POO
  3. Alternatives à Python
  4. Types de diagrammes UML
  5. Mots-clés PHP
  6. Types de données PL / SQL
  7. Lancer vs lancer | Les 5 principales différences que vous devez savoir
  8. Différents 36 principaux mots clés en SQL avec des exemples
  9. Guide des différents types de données C #
  10. Différents types de données SQL avec des exemples