Gente, me desculpe, mas estou sentido uma tremenda dificuldade nesse curso. As aulas estão muito aceleradas e está sendo pouco explicado as ferramentas. Alguém poderia me detalhar melhor sobre o 'extends' e o 'super'? Agradeço.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Gente, me desculpe, mas estou sentido uma tremenda dificuldade nesse curso. As aulas estão muito aceleradas e está sendo pouco explicado as ferramentas. Alguém poderia me detalhar melhor sobre o 'extends' e o 'super'? Agradeço.
Olá, Patrick!
Vamos lá, o extends e o super são conceitos de herança em JavaScript, que é um dos pilares da programação orientada a objetos.
O extends é usado para criar uma classe filha de outra classe. No exemplo da aula, a classe Mago é uma classe filha da classe Personagem. Isso significa que Mago herda todas as propriedades e métodos de Personagem.
export class Mago extends Personagem {
// propriedades e métodos de Mago
}
Já o super é usado para chamar o construtor da classe pai. No exemplo da aula, ele é usado para passar os parâmetros nome e level para o construtor da classe Personagem. Isso é necessário porque Mago é uma classe filha de Personagem e precisa desses dados para ser construída corretamente.
constructor(nome, level, elementoMagico, levelMagico, inteligencia) {
super(nome, level)
this.elementoMagico = elementoMagico
this.levelMagico = levelMagico
this.inteligencia = inteligencia
}
Nesse trecho de código, super(nome, level) está chamando o construtor da classe Personagem e passando os parâmetros nome e level para ele. As outras propriedades (elementoMagico, levelMagico, inteligencia) são específicas da classe Mago.
A título de curiosidade deixo a documentação que pode clarear mais a explicação:
Espero que essa explicação tenha esclarecido um pouco mais sobre o extends e o super.
Reforço que em casos de dúvidas, conte sempre com o fórum da comunidade Alura! Bons estudos!
Sucesso ✨
Um grande abraço e até mais!