OOP-də Valideyn Metodlarının Yenidən Təyin Edilməsi JavaScript-də

Alt sinif, eyni adlı metod yaradaraq valideynin metodunu yenidən təyin edə bilər. Nümunəyə baxaq. Tutaq ki, bizim aşağıdakı valideyn sinifimiz var:

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

Gəlin alt sinifdə eyni adlı metod yaradaq:

javascriptclass Student extends User {
  setName(name) {
    
  }
}

Bir qayda olaraq, valideyn metodlarının yenidən təyin edilməsi, bu metodun davranışını dəyişdirmək və ya əlavə etmək üçün lazımdır. Gəlin bizim vəziyyətimizdə adın uzunluğunu yoxlama əlavə edək:

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

Gəlin əmin olaq ki, məhz yenidən təyin edilmiş metod çağırılır. Əvvəlcə alt sinifin obyektini yaradaq:

javascriptlet student = new Student;

İndi metodumuzu çağıraq, ona düzgün dəyər ötürək:

javascriptstudent.setName('john');

İndi isə metodu, ona səhv dəyər ötürərək çağıraq. Nəticədə konsolda atılan xətanı görəcəyik:

javascriptstudent.setName(''); // xəta
Задание 1

User sinfində yaş üçün getter və setter edin.

Задание 2

Employee sinfində yaş setter-ini yenidən təyin edin və onun içində yaşın 18 ilə 65 arasında olduğunu yoxlayın.