O super() serve para eu pegar o construtor da minha classe pai. No video os professores passam como argumento do super nome, email, cpf e saldo para pegar essas propriedades da classe pai super(nome, email, cpf, saldo)
Mas como todas as propriedades da classe pai estão sendo pegas não poderia passar o super sem argumentos ? super()
Ja havia visto assim no Game Maker Statio que também utiliza OO.
Esse é meu teste q funcionou (estava testando com base no exemplo da documentação)
class Poligono {
constructor(height, width) {
this.name = "Poligono";
this.height = height;
this.width = width;
}
getName() {
console.log(`Olá eu sou um ${this.name}`);
}
static getNameHeranca() {
console.log("Herdado da classe Poligono")
}
}
class Quadrado extends Poligono {
constructor(altura,largura) {
super();
this.altura = altura;
this.largura = largura;
this.area = this.largura * this.altura;
this.name = "Quadrado";
}
getArea() {
console.log(this.area);
}
static getNameClass() {
console.log("Eu sou a classe Quadrado")
}
}
const a = new Quadrado(30, 20);
Quadrado.getNameHeranca();
Uma ultima dúvida é sobre os nome dos parametros passados no super, ele deve ter o mesmo nome das propriedades da classe pai? Por exemplo:
class class Pessoa {
constructor(nome, idade, sexo) {
this.nome = nome;
this.idade = idade;
this.sexo = sexo;
}
}
class Matheus extends Pessoa {
constructor(sobrenome) {
super(nome, idade); //Os parametros devem ser os mesmos da classe pai ou posso colocar um nome generico?
this.sobrenome = sobrenome;
}
}