Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

[Projeto] Polimorfismo e Sobrescrita


void main() {
  
Legumes mandioca = Legumes("Macaxeira", 1200.00, "Marrom ", true);
Frutas banana = Frutas("Banana", 75.00, "Amarela", "Doce", 12);
Nozes macadamia = Nozes("Macadamia", 2.00, "Branco amarelado", "Doce", 20, 35.00);
Criticas limao = Criticas("Limao", 50.00, "Verde", "Azedo", 5, 9);

mandioca.printAlimento();
banana.printAlimento();
banana.assar();
banana.fazerMassa();
banana.separarIngredientes();
macadamia.printAlimento();
macadamia.separarIngredientes();
macadamia.assar();
limao.printAlimento();
limao.separarIngredientes();

mandioca.cozinhar();
limao.fazerSuco();

}
class Alimento {
  String nome;
  double peso;
  String cor;

  Alimento(this.nome, this.peso, this.cor);

  printAlimento(){
    print("Este(a) $nome pesa $peso em gramas e é $cor");
  }
}
class Frutas extends Alimento implements Bolo{
  String sabor;
  int diasDesdeColheita;
  bool? isMadura;

  Frutas(String nome, double peso, String cor, this.sabor, this.diasDesdeColheita, {this.isMadura})
          :super(nome, peso, cor);

  estaMadura(int diasParaMadura){
    isMadura = diasDesdeColheita >= diasParaMadura;
    print("A sua $nome foi colhida a $diasDesdeColheita "
          "dias e precisa de $diasParaMadura dias para poder colher!"
          " Ela está madrua? $isMadura");
  }

  fazerSuco(){
    print("Você fez um otimo suco de $nome");
  }

  @override
  fazerMassa() {
    print("Fazendo a massa da fruta $nome");
  }

  @override
  assar() {
    print("Assando a fruta $nome");
  }
  
  @override
  separarIngredientes() {
    print("Separando os ingredientes para a fruta $nome");
  }
}

class Legumes extends Alimento implements Bolo{
  
  bool isPrecisaCozinhar;

  Legumes(String nome, double peso, String cor, this.isPrecisaCozinhar):super(nome, peso, cor);

  
  cozinhar(){
    if(isPrecisaCozinhar){
      print("Pronto, o $nome está cozinhando!");
    }else{
      print("Nem precisa cozinhar!");
    }
  }
  
  @override
  assar() {
    print('Assar o legume $nome');
  }
  
  @override
  fazerMassa() {
    print('Fazer a massa do legume $nome');
  }
  
  @override
  separarIngredientes() {
    print('Ingredientes separado para o legume $nome');
  }

}

class Criticas extends Frutas{

  double nivelAzedo;

  Criticas(String nome, double peso, String cor, String sabor, int diasDesColheita, this.nivelAzedo) : 
            super(nome, peso, cor,sabor, diasDesColheita);

  existeRefri(bool existe){
    if(existe){
      print("Existe refrigerante de $nome");
    }else {
      print("Não existe refrigerante de $nome");
    }
  }

}

class Nozes extends Frutas{

  double porcentagemOleoNatural;

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

  @override
  separarIngredientes() {
    print("Separando a casca do $nome");
  }
}

abstract class Bolo {

  separarIngredientes();

  fazerMassa();

  assar();

}

Resultado:

Este(a) Macaxeira pesa 1200.0 em gramas e é Marrom Este(a) Banana pesa 75.0 em gramas e é Amarela Assando a fruta Banana Fazendo a massa da fruta Banana Separando os ingredientes para a fruta Banana Este(a) Macadamia pesa 2.0 em gramas e é Branco amarelado Separando a casca do Macadamia Assando a fruta Macadamia Este(a) Limao pesa 50.0 em gramas e é Verde Separando os ingredientes para a fruta Limao Pronto, o Macaxeira está cozinhando! Você fez um otimo suco de Limao

1 resposta
solução!

Oi Arthur, tudo bem?

Muito obrigada por compartilhar com a gente o seu resultado da atividade! Parabéns por praticar, viu? Assim você consegue fixar bem o conteúdo visto nas aulas.

Continue firme nos estudos.

Um abraço.