Иерархия наследования классов в ООП в 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

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