1
resposta

[Projeto] [Projeto] Polimorfismo e Sobrescrita

//Projeto Polimorfismo e Sobrescrita Fazendo um Shake de Frutas, minha primeira vez no Forum espero que tenha feito tudo certo!

void main() {
  Fruta uvas = Fruta('Uvas', 'Doce', 4);
  ComCasca limoes = ComCasca('Limões', 'Azedo', 2);

  uvas.pegarFruta();
  uvas.colocarLiquidificador();
  uvas.baterLiquidificador();
  uvas.shakePronto();

  limoes.pegarFruta();
  limoes.colocarLiquidificador();
  limoes.baterLiquidificador();
  limoes.shakePronto();
}

class Fruta implements Shake {
  String nome;
  String sabor;
  int quantidade;

  Fruta(this.nome, this.sabor, this.quantidade);
  @override
  void pegarFruta() {
    print('Pegue $quantidade $nome');
  }

  @override
  void colocarLiquidificador() {
    print('Pegue as/os $nome e coloque no Liquidificador');
  }

  @override
  void baterLiquidificador() {
    print('Bata o Liquidificador');
  }

  @override
  void shakePronto() {
    print('Seu shake de $nome esta pronto e o sabor é $sabor!');
  }
}

class ComCasca extends Fruta implements Shake {
  ComCasca(String nome, String sabor, int quantidade)
      : super(nome, sabor, quantidade);

  @override
  void pegarFruta() {
    print('Tire a casca dos $quantidade $nome');
  }
}

abstract class Shake {
  void pegarFruta();
  void colocarLiquidificador();
  void baterLiquidificador();
  void shakePronto();
}
1 resposta

Olá, estudante! Como vai?

Muito bom ver seu primeiro projeto no fórum! Sua implementação já tem uma estrutura bem interessante para entender esses conceitos. Vou te mostrar alguns detalhes para melhorar ainda mais:

  1. Classe Abstrata e Implementação: Shake está cumprindo seu papel bem ao definir os métodos que suas classes precisam implementar. Lembre-se de que uma classe abstrata serve para garantir que todas as classes que a implementam sigam o mesmo padrão de métodos.

  2. Sobrescrita de Métodos: No caso de ComCasca, você sobrescreveu o método pegarFruta, que agora inclui a remoção da casca. Isso mostra bem o uso do polimorfismo, onde ComCasca trata pegarFruta de forma específica. Para demonstrar ainda mais o polimorfismo, você poderia tentar adicionar mais frutas com e sem casca e ver como cada uma se comporta.

Espero ter ajudado!

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

Abraços :)