1
resposta

[Projeto] Código para demonstração de herança em Dart. (Adaptação do exemplo desenvolvido em aula)

import 'package:proj_005_heranca/proj_005_heranca.dart' as proj_005_heranca;

void main(List<String> arguments) {
  print('Heranças em Dart: ${proj_005_heranca.calculate()}!');

  Alimentos feijao = Alimentos('feijao', 0.3, 'marron');
  feijao.printAlimento();
  Frutas manga = Frutas('manga', 400, 'vermelha e verde', 25);
  manga.printAlimento();
  Legumes batata = Legumes('batata', 250, 'amarela', isCozido: true);
  batata.printAlimento();
  batata.precisaCozinhar();
  Maracuja maracuja = Maracuja("maracujar da terra", 150, "verde", 20);
  maracuja.fazerSuco(maracuja.diasParaMaturacao);
}

class Alimentos {
  String nome;
  double peso;
  String cor;

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

  void printAlimento() {
    print("Este(a) $nome pesa $peso g e é $cor");
  }
}

class Frutas extends Alimentos {
  int diasDesdeColheita;

  Frutas(String nome, double peso, String cor, this.diasDesdeColheita)
      : super(nome, peso, cor);

  void fazerSuco(int diasParaMaturacao) {
    if (diasDesdeColheita >= diasParaMaturacao) {
      print("Suco de $nome madura prontinho!");
    } else {
      print("Suco de $nome verde prontinho!");
    }
  }
}

class Maracuja extends Frutas {
  int diasParaMaturacao = 30;

  Maracuja(String nome, double peso, String cor, int diasDesdeColheita)
      : super(nome, peso, cor, diasDesdeColheita);
}

class Legumes extends Alimentos {
  bool? isCozido;

  Legumes(String nome, double peso, String cor, {this.isCozido})
      : super(nome, peso, cor);

  void precisaCozinhar() {
    if (isCozido == true) {
      print("Esta $nome esta cozida e pronta para o consumo");
    } else {
      print(
          "Esta $nome ainda esta imprópria para o consumo. Coza antes de comer!");
    }
  }
}
1 resposta

Legal demais! Valeu por compartilhar, deu uma luz aqui!