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:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.name;
}
}
Vamos criar um método com o mesmo nome na classe filha:
class 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:
class 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:
let student = new Student;
Agora vamos chamar nosso método, passando um valor válido:
student.setName('john');
Agora vamos chamar o método, passando um valor inválido. Como resultado, veremos no console um erro lançado:
student.setName(''); // erro
Na classe User, crie
um getter e um setter para a idade.
Na classe Employee, sobrescreva
o setter de idade e adicione uma verificação
para garantir que a idade esteja entre
18 e 65 anos.