Uvod v abstraktne razrede v JavaScript
JavaScript je objektno orientiran jezik, saj je večina elementov v javascriptu objekti, ki pričakujejo primitivne vrste podatkov.
V objektno usmerjenem programiranju (OOP) je pojem abstrakcije skriti podrobnosti o izvajanju in uporabnikom pokazati bistvene značilnosti predmeta. Ta funkcija abstrakcije OOP povečuje razumljivost in vzdržnost kode, ki jo pišemo, in zmanjšuje podvajanje kode. Ker se abstrakcija večinoma uporablja v programskih jezikih, kot je Java, bomo to funkcijo uporabili v JavaScript.
V abstraktnih razredih v spletnem dnevniku JavaScript bomo razpravljali o abstraktnih predavanjih v JavaScript. Preden se poglobimo v izvajanje abstraktnega razreda v JavaScript, poglejmo, kaj so abstraktni razredi.
Kaj so abstraktni razredi?
- Abstraktne razrede je mogoče opredeliti kot razrede, ki jih ni mogoče instancirati, tj. Katerih referenc predmeta ni mogoče ustvariti in vsebujejo znotraj njega eno ali več abstraktnih metod.
- Abstraktna metoda je metoda, ki jo je mogoče samo deklarirati, vendar je ne izvaja. Abstraktni razredi morajo biti podedovani in zahtevajo podklase, da zagotovijo izvedbe za metodo, deklarirano v abstraktnem razredu.
- Tako kot v Javi imamo tudi ključno besedo abstrakt, da razred postane abstrakten razred, tudi v JavaScript ni takšnih rezervnih ključnih besed, ki bi razred razglasile za abstrakten razred.
- V spodnjem primeru bomo v JavaScript zakodirali nekaj vrstic in preverili, ali lahko ustvarimo abstrakten razred in preverimo, ali lahko zadovoljimo njegove lastnosti ali ne.
Primeri izvlečnega razreda v JavaScript
Oglejmo si nekaj primerov s pomočjo programske kode
Primer # 1: Izvleček ustvarjanja razredov
Koda:
//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();
Izhod -
Pojasnilo zgornje kode
V zgornjem scenariju kode smo ustvarili eno funkcijo konstruktorja Zaposleni, ki deluje kot abstrakten razred. Ustvarili smo tudi funkcijo prikaza, da preverimo ime zaposlenega. V zadnji vrstici JavaScript ustvarimo referenco predmeta ali primerek (zaposlenega) abstraktnega razreda Zaposleni, da preverimo, ali se objekt ustvarja ali se skozi funkcijo prikaza prikaže napaka.
Z nadaljevanjem zgornjega primera bomo ustvarili še eno funkcijo, ki razširi lastnosti in metode našega abstraktnega razreda Zaposleni. Glede Jave bomo ustvarili podrazred in naš zaposleni bo razred.
Primer # 2: Razširitev abstraktnega razreda
Koda:
//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());
Izhod
Pojasnilo zgornje kode
V zgornjem primeru koda smo abstrakcijo dosegli tako, da smo ustvarili upravitelja funkcij / razredov, ki razširja naš abstraktni razred Employee skozi verigo prototipov (pomemben koncept v JavaScript, s pomočjo katerega se doseže dedovanje). Podrobnosti o izvedbi, ki smo jih skrivali od uporabnika, in dostopajo samo do funkcij, ki ustrezajo njegovim zahtevam.
V zgornjih primerih 1 in 2 smo lahko dosegli abstrakcijo, čeprav resnično nismo zadovoljili vseh lastnosti abstraktnega razreda. Po definiciji abstraktnih razredov njegovega predmeta ni mogoče ustvariti in bi moral imeti eno ali več abstraktnih metod.
S izdajo ES6 je JavaScript postal veliko enostavnejši in je v njem uvedel nove funkcije razredov kot na Javi in njegove dodatne funkcije. Oglejmo si spodnji primer, kjer v JavaScript izvajamo razred skupaj z lastnostmi abstrakcije.
Primer # 3: Izvleček razreda - celotna koda
Koda:
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();
Izhod 1 - pravilen izhod
Rezultat 2 - Komentirajte super.display ()
Rezultat 3 - Komentirajte var emp = novi zaposleni ()
Pojasnilo zgornje kode
Zgornji delček kode skoraj izgleda kot java koda, v kateri so definirani razredi, konstruktorji, metode in predmeti, to je čarovnija sproščanja ES6. Ko se vrnemo k kodi, lahko vidimo, da je razred Employee abstrakten razred in prikaže napako, ko je ustvarjen njegov objekt (Output 3) in vsebuje abstraktni prikaz (), katerega izvedba je določena v metodi display () Manager razreda, ki razširja lastnosti in metode razreda Employee.
Sklep
Pri obravnavanju abstrakcije moramo imeti v mislih, da ni mogoče ustvariti primerka abstraktnega razreda. Za zaključek smo izvedeli, kako lahko abstrahiranje koncepta OOP implementiramo v JavaScript in lahko izvaja abstraktni razred z vsemi lastnostmi.
Priporočeni članki
To je vodnik za Abstraktne razrede v JavaScript. Tukaj razpravljamo o uvodu v Abstraktne razrede v JavaScript, kaj so abstraktni razredi skupaj z ustreznimi primeri. Obiščite lahko tudi druge naše predlagane članke, če želite izvedeti več -
- Kaj je novega v Javi 8?
- Prevladujoče v OOP
- Python alternative
- Vrste diagramov UML
- PHP Ključne besede
- Vrste PL / SQL podatkov
- Vrzi proti metanju | Top 5 razlik, ki bi jih morali vedeti
- Različnih top 36 ključnih besed v SQL s primeri
- Vodnik po različnih vrstah podatkov C #
- Različne vrste podatkov SQL s primeri