Construtor na herança em OOP em JavaScript
Na herança, você pode sobrescrever o construtor da classe pai. Vamos ver com um exemplo. Suponha que temos a seguinte classe pai:
class User {
constructor(name, surn) {
this.name = name;
this.surn = surn;
}
getName() {
return this.name;
}
getSurn() {
return this.surn;
}
}
Suponha que a seguinte classe herda da classe pai:
class Student extends User {
}
Suponha que queremos no construtor da classe filha estender o construtor, adicionando parâmetros adicionais a ele:
class Student extends User {
constructor(name, surn, year) {
}
}
Neste caso, precisamos obrigatoriamente
chamar o construtor da classe pai
usando super na primeira linha:
class Student extends User {
constructor(name, surn, year) {
super();
}
}
O comando super é essencialmente
o construtor da classe pai. Portanto,
vamos passar os parâmetros necessários para ele:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
}
}
Agora, na classe filha, vamos registrar o ano de estudo em sua própria propriedade:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
}
Vamos criar um getter para o ano de estudo:
class Student extends User {
constructor(name, surn, year) {
super(name, surn);
this.year = year;
}
getYear() {
return this.year;
}
}
Suponha que a classe Employee herda
da classe User desta
lição.
Sobrescreva o construtor da classe pai em Employee,
adicionando parâmetros de idade e salário.
Crie getters para a idade e para o salário.