OOP-də JavaScript-də override edilmiş metodun çağırılması

Override etdikdə, nəsildə valideynin override edilmiş metoduna çıxış itir. Lakin, buna çıxışı yenə də əldə etmək olar. Bu, valideyn sinifini göstərən super açar sözü vasitəsilə edilir.

Gəlin nümunə ilə baxaq, nə vaxt valideyn metoduna çıxışımız ola bilər. Tutaq ki, aşağıdakı valideyn sinifimiz var:

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

Tutaq ki, biz nəsil sinifdə valideyn metodunu override etdik:

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

Qeyd etmək olar ki, override edilmiş metoddda şərt yerinə yetirildikdə, əslində valideyn metodunun kodu icra olunur. Bu, lazımsız kod təkrarlanması ilə nəticələnir.

Valideyn metodunu çağıraraq bundan qurtulmaq olar. Gəlin bunu edək:

javascriptclass Student extends User {
  setName(name) {
    if (name.length > 0) {
      super.setName(name); // valideyn metodu
    } else {
      throw new Error('student name error');
    }
  }
}
Задание 1

Aşağıdakı kod verilmişdir:

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');
    }
  }
}

Employee sinfində yaş setterini valideynin orijinal metodundan istifadə edərək sadələşdirin.