1
resposta

[Projeto] Polimorfismo e Sobrescrita

class Fruta extends Alimento implements Bolo{...}
.
.
.

class Nozes extends Fruta implements PrepararNozes{
  double porcentagemOleoNatural;

  Nozes(String nome, double peso, String cor, String sabor,
      int diaDesdeColheita, this.porcentagemOleoNatural)
      : super(nome, peso, cor, sabor, diaDesdeColheita);

  @override
  void fazerMassa() {
    print('Tirar a casca');
    //super.fazerMassa();
  }
  
  @override
  void descascar() {
    print('Colocar $nome na Descascadora');
  }
  
  @override
  void torrar() {
    print('Colocar $nome na torradeira');
  }
  
  @override
 void triturar() {
    print('Colocar $nome para Triturar');
    super.assar();
  }
}

abstract class Bolo{
  void separarIngredientes();
  void fazerMassa();
  void assar();
}

abstract class PrepararNozes{
  void descascar();
  void torrar();
  void triturar();
}

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

1 resposta

Olá, Charles!

Pelo que você compartilhou, parece que você está no caminho certo com a implementação do polimorfismo e da sobrescrita de métodos em Dart. Você criou uma classe Nozes que estende Fruta e implementa duas interfaces, Bolo e PrepararNozes. Isso é um bom exemplo de polimorfismo, pois Nozes pode ser tratada como uma Fruta, um Bolo ou um PrepararNozes, dependendo do contexto.

Além disso, você sobrescreveu os métodos fazerMassa, descascar, torrar e triturar na classe Nozes, o que está de acordo com o desafio proposto na atividade. No entanto, notei que no método triturar, você está chamando super.assar(), mas esse método não parece estar definido na classe pai Fruta ou nas interfaces Bolo e PrepararNozes. Isso pode causar um erro, a menos que assar esteja definido em algum lugar na hierarquia de Fruta.

Além disso, na imagem que você anexou, parece que você está testando a execução do seu código e está obtendo a saída esperada, com as mensagens de cada método sendo impressas corretamente. A mensagem "A sua Melancia foi colhida a 40 dias e precisa de 43 dias para poder comer! Ela está Madura? false" sugere que você também está trabalhando com a lógica de verificar a maturidade de uma fruta, o que é uma ótima adição para praticar a lógica de programação.

Se você tiver alguma dúvida específica sobre o código ou sobre os conceitos de polimorfismo e sobrescrita, fique à vontade para compartilhar para que possamos ajudar a esclarecer. Lembre-se de que a prática é essencial para o entendimento desses conceitos, então continue experimentando e testando seu código.

Espero ter ajudado e bons estudos!