Преоптеређивање метода родитеља у ООП у JavaScript-у

Изведена класа може да преоптеређује метод родитеља креирањем методе са истим именом. Хајде да погледамо на примеру. Нека имамо следећу родитељску класу:

javascriptclass User {
  setName(name) {
    this.name = name;
  }
  getName() {
    return this.name;
  }
}

Хајде да у изведеној класи креирамо метод са истим именом:

javascriptclass Student extends User {
  setName(name) {
    
  }
}

У принципу, преоптеређивање метода родитеља је потребно да би се променило или допунило понашање тог метода. Хајде да у нашем случају додамо проверу дужине имена:

javascriptclass Student extends User {
  setName(name) {
    if (name.length > 0) {
      this.name = name;
    } else {
      throw new Error('student name error');
    }
  }
}

Хајде да се уверимо да се позива баш преоптеређени метод. Прво креирајмо објекат изведене класе:

javascriptlet student = new Student;

Сада позовимо наш метод, проследивши му исправну вредност:

javascriptstudent.setName('john');

А сада позовимо метод, проследивши му неисправну вредност. Као резултат видећемо у конзоли избачену грешку:

javascriptstudent.setName(''); // грешка
Задание 1

У класи User направите гетер и сетер за старост.

Задание 2

У класи Employee преоптеретите сетер за старост и у њему направите проверу да старост буде од 18 до 65 година.