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:

javascriptclass 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:

javascriptclass 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:

javascriptclass Student extends User {
  setName(name) {
    if (name.length > 0) {
      super.setName(name); // szülői metódus
    } else {
      throw new Error('student name error');
    }
  }
}
Задание 1

Adott a következő kód:

javascriptclass 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.