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!");
}
}
}