1
resposta

Erro com codigo na aula sobre Herança.

[Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Como soluciono esse erro que esta aparecendo no meu codigo.

1 resposta

Parece que você está enfrentando um problema de sintaxe e erro de argumentos posicionais no seu código Dart relacionado à herança e à criação de objetos. Vamos tentar corrigir esses problemas com base nas informações fornecidas:

Erro de Argumentos Posicionais: O erro "Too many positional arguments: 5 expected, but 6 found." indica que você está passando mais argumentos posicionais do que o esperado em algum lugar do seu código. Isso geralmente ocorre quando há uma inconsistência entre os parâmetros definidos na classe e os argumentos passados ao instanciar objetos dessas classes.

Sintaxe e Herança: Ao definir classes e realizar herança em Dart, é importante seguir a sintaxe correta para garantir que as classes estejam corretamente estruturadas e que os objetos sejam instanciados corretamente.

Com base nas informações fornecidas e nos padrões comuns em Dart, aqui está um exemplo corrigido e simplificado que pode te ajudar:

void main() { // Instanciando os objetos das classes derivadas PersonagemPrincipal personagem1 = PersonagemPrincipal("Matheus", "Silva", "Pardo", 85, 5, 25); PersonagemVilao personagem2 = PersonagemVilao("Skarlet", "Darkson", "Pardo", 220, 48); PersonagemMago personagem3 = PersonagemMago("Rebert", "Costa", "Branco", 89, 30, 85); PersonagemArqueiro personagem4 = PersonagemArqueiro("Gavião", "Marciano", "Branco", 70, 27, 60);

// Exemplo de utilização dos objetos print(personagem1.nomeCompleto()); // Exemplo de método na classe base print(personagem2.nomeCompleto()); // Herança permite acessar métodos e atributos da classe base }

// Definição das classes class PersonagemPrincipal { String nome; String sobrenome; String corPele; int vida; int forca; int agilidade;

// Construtor da classe base PersonagemPrincipal(this.nome, this.sobrenome, this.corPele, this.vida, this.forca, this.agilidade);

// Exemplo de método na classe base String nomeCompleto() { return "$nome $sobrenome"; } }

// Exemplo de herança class PersonagemVilao extends PersonagemPrincipal { // Construtor da classe derivada PersonagemVilao(String nome, String sobrenome, String corPele, int vida, int forca) : super(nome, sobrenome, corPele, vida, forca, 0); // A agilidade padrão para vilão pode ser 0

// Métodos adicionais específicos para vilão, se necessário }

// Outras classes derivadas seguindo o mesmo padrão class PersonagemMago extends PersonagemPrincipal { PersonagemMago(String nome, String sobrenome, String corPele, int vida, int forca, int agilidade) : super(nome, sobrenome, corPele, vida, forca, agilidade); }

class PersonagemArqueiro extends PersonagemPrincipal { PersonagemArqueiro(String nome, String sobrenome, String corPele, int vida, int forca, int agilidade) : super(nome, sobrenome, corPele, vida, forca, agilidade); }

Explicações: Instanciação dos Objetos: Cada classe é instanciada com os argumentos adequados para seu construtor. Herança: As classes PersonagemVilao, PersonagemMago e PersonagemArqueiro herdam os atributos e métodos da classe base PersonagemPrincipal.

Métodos: Exemplo simples de método (nomeCompleto) na classe base e como ele pode ser acessado através das classes derivadas. Certifique-se de ajustar os nomes das classes e métodos conforme sua necessidade específica. Isso deve ajudar a resolver os problemas de sintaxe e herança que você está enfrentando em seu código Dart.