1
resposta

Muito mal explicado essas ferramentas

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.

1 resposta

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!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓. Bons Estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software