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:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.name;
}
}
Keling, voris sinfda xuddi shu nomli metod yarataylik:
class 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:
class 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:
let student = new Student;
Endi metodimizni chaqirib, unga to'g'ri qiymatni o'tkazamiz:
student.setName('john');
Endi metodni chaqirib, unga noto'g'ri qiymatni o'tkazamiz. Natijada konsolda chiqarilgan xatoni ko'ramiz:
student.setName(''); // xato
User sinfida
yosh uchun getter va setter yarating.
Employee sinfida
yosh setterini qayta belgilang va unda
yosh 18 dan
65 yoshgacha ekanligini tekshiring.