Йерархия на наследяване на класове в ООП в JavaScript

Може да се извършва наследяване от клас, който сам по себе си е потомък. Нека разгледаме пример. Нека имаме следния родителски клас:

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

От този клас наследява следния клас:

javascriptclass Student extends User {
  setYear(year) {
    this._year = year;
  }
  getYear() {
    return this._year;
  }
}

А от този клас наследява още един клас:

javascriptclass StudentProgrammer extends Student {
  setSkill(skill) {
    this._skill = skill;
  }
  getSkill() {
    return this._skill;
  }
}
Задание 1

Направете клас Employee, който ще наследява от класа User.

Задание 2

Направете клас Programmer, който ще наследява от класа Employee.

Задание 3

Направете класове Designer, който ще наследява от класа Employee.

Задание 4

Добавете в създадените от вас класове различни методи.