Uvod u apstraktne razrede u JavaScript-u

JavaScript je objektno orijentiran jezik s obzirom da je većina elemenata u javascriptu JavaScript objekti koji očekuju primitivne tipove podataka.

U objektno-orijentiranom programiranju (OOP) koncept apstrakcije je sakriti izvedbene detalje i prikazati korisničkim značajkama objekta svojstva. Ova značajka apstrakcije OOP-a povećava razumljivost i održivost koda koji pišemo i smanjuje dupliciranje koda. Budući da se apstrakcija većinu vremena koristi u programskim jezicima kao što je Java, tu ćemo značajku primijeniti u JavaScript-u.

U apstraktnim klasama u postu na blogu JavaScript raspravljat ćemo o Sažetak predavanja u JavaScript. Prije nego što zavirimo u primjenu apstraktne klase u JavaScriptu, razumjet ćemo što su apstraktne klase.

Što su apstraktni časovi?

  • Apstraktne klase mogu se definirati kao klase koje nije moguće instancirati, tj. Čija se referenca objekta ne može stvoriti i sadrži u njoj jednu ili više apstraktnih metoda.
  • Apstraktna metoda je metoda koja se može samo deklarirati, ali na nju nema primjene. Apstraktne klase moraju biti naslijeđene i zahtijevaju potklase da bi se osigurale implementacije za metodu koja je deklarirana u apstraktnoj klasi.
  • Kao i u Javi, i mi imamo apstraktnu ključnu riječ da bi klasa postala apstraktna klasa, u JavaScript-u ne postoje takve rezervne ključne riječi da bi se klasa proglasila apstraktnom klasom.
  • U primjeru u nastavku kodirat ćemo nekoliko redaka u JavaScriptu kako bismo provjerili možemo li stvoriti apstraktnu klasu i vidjeti možemo li zadovoljiti njena svojstva ili ne.

Primjeri apstraktne klase u JavaScript-u

Pogledajmo neke od primjera uz pomoć programskog koda

Primjer br. 1: Izrada apstraktnih klasa

Kodirati:



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

Izlaz -

Objašnjenje gornjeg koda

U gornjem scenariju kodova stvorili smo jednu konstrukcijsku funkciju Employee koja djeluje kao apstraktna klasa. Također smo stvorili funkciju prikaza da provjerimo ime zaposlenika. U posljednjem retku JavaScripta stvaramo referencu objekta ili instancu (zaposlenika) zaposlenika apstraktne klase kako bismo provjerili stvara li objekt ili se pogreška prikazuje putem funkcije prikaza.

Sada, proširujući gornji primjer, stvorit ćemo još jednu funkciju koja proširuje svojstva i metode zaposlenika apstraktne klase. Što se tiče Jave, stvorit ćemo potklasu, a naš zaposlenik će biti superrazred.

Primjer br. 2: Proširenje apstraktne klase

Kodirati:



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

Izlaz

Objašnjenje gornjeg koda

U gornjem primjeru koda, apstrakciju smo postigli stvaranjem upravitelja funkcija / klase koji proširuje našu apstraktnu klasu zaposlenika kroz lanac prototipa (važan koncept u JavaScript-u, kroz koji se postiže nasljeđivanje). Pojedinosti o implementaciji koje smo skrivali od korisnika i pristupaju samo značajkama koje udovoljavaju njegovim zahtjevima.

U gornjim primjerima 1 i 2 uspjeli smo postići apstrakciju, iako stvarno nismo zadovoljili sva svojstva apstraktne klase. Prema definiciji apstraktnih klasa, njezin se objekt ne može stvoriti i treba imati jednu ili više apstraktnih metoda.

Izlaskom ES6, JavaScript je postao puno jednostavniji i u njega su uvedene nove značajke klasa kao u Javi i njegove dodatne značajke. Pogledajmo donji primjer gdje implementiramo klasu u JavaScript zajedno sa svojstvima apstrakcije.

Primjer # 3: Sažetak klase - Kompletan kod

Kodirati:



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

Izlaz 1 - Ispravan izlaz

Izlaz 2 - Komentirajte super.display ()

Izlaz 3 - Komentirajte var emp = novi zaposlenik ()

Objašnjenje gornjeg koda

Gornji isječak koda gotovo izgleda kao java kôd s klasama, konstruktorima, metodama i definiranim objektima, ovo je magija oslobađanja ES6. Vraćajući se na kod, možemo vidjeti da je klasa Employee apstraktna klasa i prikazuje pogrešku kada se stvori njegov objekt (izlaz 3) i sadrži apstraktni prikaz () čija je implementacija definirana u display () metodi upravitelja klase koja proširuje svojstva i metode klase Employee.

Zaključak

Moramo imati na umu dok se bavimo apstrakcijom da ne može stvoriti instancu apstraktne klase. Zaključno smo naučili kako se apstrakcija jedan OOP koncept može implementirati u JavaScript i moći implementirati apstraktnu klasu sa zadovoljstvom svih njenih svojstava.

Preporučeni članci

Ovo je vodič za Sažetak nastave u JavaScript-u. Ovdje smo raspravljali o uvodu u Abstraktne razrede u JavaScript-u, što su Sažetak klase zajedno s odgovarajućim primjerima. Možete i proći kroz naše druge predložene članke da biste saznali više -

  1. Što je novo u Javi 8?
  2. Prevladavanje u OOP-ovima
  3. Python Alternative
  4. Vrste UML dijagrama
  5. PHP Ključne riječi
  6. PL / SQL tipovi podataka
  7. Baciti protiv bacanja | Top 5 razlika koje biste trebali znati
  8. Različitih 36 ključnih riječi u SQL-u s primjerima
  9. Vodič za različite C # tipove podataka
  10. Različite vrste SQL podataka s primjerima

Kategorija: