Sobrescrevendo métodos da classe pai em POO em JavaScript

Uma classe filha pode sobrescrever um método da classe pai, criando um método com o mesmo nome. Vejamos um exemplo. Suponha que temos a seguinte classe pai:

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

Vamos criar um método com o mesmo nome na classe filha:

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

Geralmente, a sobrescrita de métodos da classe pai é necessária para alterar ou complementar o comportamento desse método. No nosso caso, vamos adicionar uma verificação do comprimento do nome:

javascriptclass Student extends User {
  setName(name) {
    if (name.length > 0) {
      this.name = name;
    } else {
      throw new Error('erro no nome do estudante');
    }
  }
}

Vamos verificar se é o método sobrescrito que está sendo chamado. Primeiro, vamos criar um objeto da classe filha:

javascriptlet student = new Student;

Agora vamos chamar nosso método, passando um valor válido:

javascriptstudent.setName('john');

Agora vamos chamar o método, passando um valor inválido. Como resultado, veremos no console um erro lançado:

javascriptstudent.setName(''); // erro
Задание 1

Na classe User, crie um getter e um setter para a idade.

Задание 2

Na classe Employee, sobrescreva o setter de idade e adicione uma verificação para garantir que a idade esteja entre 18 e 65 anos.