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