# Переопределение методов родителя в ООП в 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(''); // ошибка`

В классе `Employee` сделайте геттер и сеттер возраста.

В классе `Employee` переопределите сеттер возраста и сделайте в нем проверку на то, что возраст от `18` до `65` лет.

←→
↑