JavaScript да ООП да ота-синф усулларини қайта белгилаш
Синф-авлод отасинфнинг усулини шунга ўхшаш ном билан усул яратиб қайта белгилаши мумкин. Келинг мисолда кўрамиз. Фарз қилайлик, бизда куйидаги ота синф мавжуд:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.name;
}
}
Келинг синф-авлодда шунинг билан бир хил номли усул яратайлик:
class Student extends User {
setName(name) {
}
}
Одатда, ота синфнинг усулларини қайта белгилаш ушбу усулнинг хатти-харакатини ўзгартириш ёки тўлдириш учун керак бўлади. Келинг бизнинг ҳолимизда исм узунлигини текширишни қўшайлик:
class Student extends User {
setName(name) {
if (name.length > 0) {
this.name = name;
} else {
throw new Error('student name error');
}
}
}
Келинг, чорланган айнан қайта белгиланган усул эканига ишонч ҳосил қилайлик. Аввало синф-авлоднинг объектини яратамиз:
let student = new Student;
Энди бизнинг усулимизни чорлаб, уңға мос келувчи қийматни узатамиз:
student.setName('john');
Энди эса усулни чорлаб, унга мос келмайдиган қийматни узатамиз. Натижада консолда чиқарилган хатони кўрамиз:
student.setName(''); // хатолик
User синфида
ёш геттери ва сеттерини яратинг.
Employee синфида ёш
сеттерини қайта белгиланг ва унда
ёш 18 дан 65 гача
эканини текширишни амалга оширинг.