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