⊗jsOpIhCOM 32 of 60 menu

Felülírt metódus hívása az OOP-ben JavaScriptben

A felülírás során a leszármazott elveszíti a hozzáférést a felülírt szülői metódushoz. Azonban továbbra is elérhetővé tehető. Ez a super kulcsszóval történik, amely a szülőosztályra mutat.

Nézzünk egy példát, amikor szükségünk lehet hozzáférni a szülői metódushoz. Tegyük fel, hogy a következő szülőosztályunk van:

class User { setName(name) { this.name = name; } getName() { return this.name; } }

Tegyük fel, hogy a leszármazott osztályban felülírtuk a szülő metódusát:

class Student extends User { setName(name) { if (name.length > 0) { this.name = name; } else { throw new Error('student name error'); } } }

Megfigyelhető, hogy a felülírt metódusban a feltétel teljesülésekor lényegében a szülői metódus kódja fut le. Ez szükségtelen kódismétléshez vezet.

Megszabadulhatunk tőle, ha meghívjuk a szülő metódusát. Tegyük ezt meg:

class Student extends User { setName(name) { if (name.length > 0) { super.setName(name); // szülői metódus } else { throw new Error('student name error'); } } }

Adott a következő kód:

class User { setAge(age) { if (age >= 0) { this.age = age; } else { throw new Error('need age more 0'); } } } class Employee { setAge(age) { if (age <= 120) { if (age >= 0) { this.age = age; } else { throw new Error('need age more 0'); } } else { throw new Error('need age less 120'); } } }

A Employee osztályban egyszerűsítsd a kor beállítót az eredeti szülői metódus használatával.

frkaswsvnl