OOP da JavaScriptda ota-onalar metodlarini qayta belgilash

Voris sinf ota-ona metodini xuddi shu nom bilan metod yaratish orqali qayta belgilashi mumkin. Keling, buni misol orqali ko'ramiz. Faraz qilaylik, bizda quyidagi ota sinf mavjud:

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

Keling, voris sinfda xuddi shu nomli metod yarataylik:

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

Odatda, ota-ona metodlarini qayta belgilash ushbu metodning xatti-harakatini o'zgartirish yoki to'ldirish uchun kerak bo'ladi. Keling, bizning holatda ism uzunligini tekshirishni qo'shaylik:

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

Keling, chaqirilgan metod aniq qayta belgilangan metod ekanligiga ishonch hosil qilaylik. Boshdan, voris sinf ob'ektini yaratamiz:

javascriptlet student = new Student;

Endi metodimizni chaqirib, unga to'g'ri qiymatni o'tkazamiz:

javascriptstudent.setName('john');

Endi metodni chaqirib, unga noto'g'ri qiymatni o'tkazamiz. Natijada konsolda chiqarilgan xatoni ko'ramiz:

javascriptstudent.setName(''); // xato
Задание 1

User sinfida yosh uchun getter va setter yarating.

Задание 2

Employee sinfida yosh setterini qayta belgilang va unda yosh 18 dan 65 yoshgacha ekanligini tekshiring.