3
respostas

Exercício 4

Sobre o exercício 4, fazer desta forma estaria correto também?

abstract class Documento {
  String nomeDoDocumento;

  Documento(this.nomeDoDocumento);

  void imprimir();
}

class Relatorio extends Documento{
  Relatorio(super.nomeDoDocumento);

  @override
  void imprimir(){
    print('O $nomeDoDocumento foi enviado para impressão.');
  }
}

void main() {
  Relatorio relatorio = Relatorio('Relatório Anual');
  relatorio.imprimir();
}

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
3 respostas

Olá, Isadora, como vai?

Seu código está correto e demonstra um bom entendimento sobre classes abstratas, herança e polimorfismo em Dart. Ao criar a classe Relatorio que herda de Documento, você resolveu a limitação de não poder instanciar a classe abstrata diretamente, seguindo a lógica do exercício.

Ficamos felizes que você está se dedicando e compartilhando sua solução.

Siga firme nos seus estudos e conte com o fórum sempre que precisar.

Abraços :)

Caso este post tenha lhe ajudado, por favor, marcar como solucionado

ótima pesquisa

Oi Isadora, tudo bem? Sim, seu código está correto e é um ótimo exemplo de como usar classes abstratas em Dart. Você definiu corretamente a abstract class Documento como um "contrato", forçando as classes filhas a implementarem o método imprimir(). Sua classe Relatorio cumpre esse contrato perfeitamente: ela herda de Documento, passa o nome para o construtor da classe-mãe usando super() e fornece a implementação concreta do método imprimir() com o @override. A execução no main também está perfeita, criando a instância e chamando o método corretamente.