1
resposta

Como que o metodo foi puxado?

import User from "./User.js";

class Admin extends User {
    constructor(nome, email, nascimento, role = 'admin', ativo = true){
        super(nome, email, nascimento, role, ativo);
    }

}

const novoAdmin =   new Admin("Rodrigo", "r@r.com", "2000/02/24")

console.log(novoAdmin);
log(novoAdmin.exibirInfos);

Nesse codigo o metodo funciona perfeitamente, oque não faz sentido porque não puxamos ele com o Super. Não precisa puxar? Se não precisa puxar porque puxamos as informações?

1 resposta

Olá, Weslley. Tudo bem?

Entendo sua dúvida sobre o método exibirInfos. Quando você cria uma classe em JavaScript que herda de outra, como Admin herdando de User, a classe filha (Admin) tem acesso a todos os métodos e propriedades da classe pai (User). Isso acontece automaticamente devido à herança.

No seu código, a classe Admin herda de User, então qualquer método que esteja definido em User estará disponível para instâncias de Admin, sem a necessidade de "puxar" ou redefinir esses métodos na classe Admin. O método exibirInfos deve estar definido na classe User, e é por isso que você consegue acessá-lo diretamente através de uma instância de Admin, como novoAdmin.exibirInfos.

O super é utilizado no construtor da classe Admin para chamar o construtor da classe User, garantindo que as propriedades definidas no construtor de User sejam corretamente inicializadas. No entanto, ele não é necessário para métodos, pois a herança já cuida disso.

Espero ter ajudado e bons estudos.

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