Преоптеређивање метода родитеља у ООП у 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 година.