Bevezetés az absztrakt osztályokba a JavaScript-ben

A JavaScript objektumorientált nyelv, mivel a javascript legtöbb elemének objektumai elvárják a primitív adattípusokat.

Objektum-orientált programozásban (OOP) az absztrakció célja az, hogy elrejtse a megvalósítás részleteit, és bemutatja a felhasználó számára az objektum lényeges tulajdonságait. Az OOP ezen absztrakciós tulajdonsága javítja az általunk írt kód megérthetőségét és karbantarthatóságát, és csökkenti a kód sokszorosítását. Mivel az absztrakciót általában a programozási nyelvekben, például a Javaban használják, ezt a funkciót a JavaScript-ben fogjuk alkalmazni.

A JavaScript blogbejegyzésben az Absztrakt Osztályok kategóriában a Javascript abszolút osztályokat fogjuk megvitatni. Mielőtt belemerülnénk az absztrakt osztály JavaScriptbe történő beépítésébe, megértjük, mi az absztrakt osztály.

Mik az absztrakt osztályok?

  • Az absztrakt osztályok olyan osztályokként definiálhatók, amelyek nem realizálhatók, azaz amelyek tárgyi referenciáját nem lehet létrehozni, és benne tartalmaz egy vagy több absztrakt módszert.
  • Az absztrakt módszer olyan módszer, amelyet csak deklarálhatunk, de nincs végrehajtása. Az absztrakt osztályokat örökölni kell, és alosztályokra van szükség az absztrakt osztályban deklarált módszer megvalósításának biztosításához.
  • Mint a Java-ban is, az absztrakt kulcsszóval az osztályt elvont osztálymá tesszük, a JavaScript-ben nincs ilyen tartalék kulcsszó az osztály elvont osztálynak nyilvánításához.
  • Az alábbi példában néhány sort kódolunk JavaScript-ben, hogy ellenőrizzük, létrehozhatunk-e absztrakt osztályt, és meg tudjuk-e felelni annak tulajdonságainak.

Példák absztrakt osztályra a JavaScript-ben

Nézzünk meg néhány példát a programkód segítségével

1. példa: Absztrakt osztályteremtés

Kód:



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

Kimenet -

A fenti kód magyarázata

A fenti kódforgatókönyvben létrehoztunk egy munkavállalói konstruktorfüggvényt, amely elvont osztályként működik. Létrehozottunk egy megjelenítő funkciót is, hogy ellenőrizzük a Munkavállaló nevét. A JavaScript utolsó sorában létrehozunk egy objektum hivatkozást vagy az Employee absztrakt osztály példányát (alkalmazottját) annak ellenőrzésére, hogy az objektum létrejön-e, vagy egy hiba megjelenik-e a megjelenítési funkción keresztül.

A fenti példa további kibővítésével létrehozunk egy másik függvényt, amely kiterjeszti az Absztrakt osztályú Munkavállaló tulajdonságait és módszereit. A Java szempontjából alosztályt hozunk létre, és az alkalmazottunk lesz a szuper osztály.

2. példa: Az absztrakt osztály kibővítése

Kód:



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

Kimenet

A fenti kód magyarázata

A fenti kódpéldában az absztrakciót olyan funkció / osztályvezető létrehozásával értük el, amely kiterjeszti absztrakt osztályú alkalmazottunkat a prototípus láncon keresztül (a JavaScript egyik fontos koncepciója, amelyen keresztül az öröklés megvalósul). A megvalósítás részletezi a felhasználó által rejtett képességeket, és csak azokhoz a szolgáltatásokhoz férhet hozzá, amelyek megfelelnek az igényeinek.

A fenti 1. és 2. példában absztrakciót sikerült elérnünk, bár tényleg nem teljesítettük az absztrakt osztály összes tulajdonságát. Az absztrakt osztályok meghatározása szerint tárgyát nem lehet létrehozni, és egy vagy több elvont módszerrel kell rendelkeznie.

Az ES6 kiadásával a JavaScript sokkal egyszerűbbé vált, és új funkciókat vezetett be az osztályokban, mint a Java és annak kiegészítő szolgáltatásai. Lássuk az alábbiakban egy példát, ahol egy osztályt valósítunk meg a JavaScript-ben, az absztrakciós tulajdonságokkal együtt.

3. példa: Absztrakt osztály - A teljes kód

Kód:



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

1. kimenet - helyes kimenet

2. output - Kommentáld a super.display-ot ()

3. eredmény - Kommentáld ki a var emp = új alkalmazott ()

A fenti kód magyarázata

A fenti kódrészlet szinte úgy néz ki, mint egy Java kód, ahol osztályok, konstruktorok, módszerek és objektumok vannak meghatározva, ez az ES6 kiadásának varázsa. Visszatérve a kódhoz, láthatjuk, hogy a Munkavállalói osztály absztrakt osztály, és hibát jelenít meg, amikor az objektum létrehozásra kerül (3. kimenet), és tartalmaz egy elvont metóduskijelzőt (), amelynek megvalósítását a Manager display () metódusa határozza meg. osztály, amely kibővíti a Munkavállalói osztály tulajdonságait és módszereit.

Következtetés

Az absztrakcióval foglalkozni kell, hogy nem lehet absztrakt osztály példányát létrehozni. Összegzésképpen megtanultuk, hogy az OOP-elv elvégezhető-e absztrakcióval JavaScript-ben, és hogyan lehet egy absztrakt osztályt megvalósítani, minden tulajdonságával teljesítve.

Ajánlott cikkek

Ez egy útmutató az absztrakt osztályokhoz a JavaScripten. Itt tárgyaljuk a JavaScript absztrakt osztályok bevezetését, amelyek az absztrakt osztályok, a megfelelő példákkal együtt. A további javasolt cikkeken keresztül további információkat is megtudhat -

  1. Újdonságok a Java 8-ban?
  2. Az OOP felülbírálása
  3. Python alternatívák
  4. UML diagramok típusai
  5. PHP kulcsszavak
  6. PL / SQL adattípusok
  7. Dobás és dobás | Öt legfontosabb különbség, amelyet tudnia kell
  8. Különböző 36 legfontosabb kulcsszó az SQL-ben példákkal
  9. Útmutató a különféle C # adattípusokhoz
  10. Különböző típusú SQL adatok példákkal

Kategória: