void main() {
Fruta fruta01 = Fruta("banana", 12, 20, 2);
Citrica citrica01 = Citrica("Limão", 5, 1, 15, 90);
Hidrica hidrica01 = Hidrica("Melância", 1500, 15, 20, 90);
fruta01.estaMadura();
citrica01.suco();
hidrica01.refrescante();
fruta01.separarIngredientes();
fruta01.fazerMassa();
fruta01.assar();
citrica01.separarIngredientes();
}
class Alimento {
String nome;
double peso;
Alimento(this.nome, this.peso);
}
class Fruta extends Alimento implements Bolo{
int diasColheita;
int diasMadurar;
bool? isMadura;
Fruta(String nome, double peso, this.diasMadurar, this.diasColheita)
:super(nome, peso);
estaMadura(){
if(isMadura = diasColheita >= diasMadurar){
print("a sua $nome foi colhida há $diasColheita dias, e precisa de $diasMadurar dias para ficar madura. A fruta está madura? $isMadura");
}else{
print("a sua $nome foi colhida há $diasColheita dias, e precisa de $diasMadurar dias para ficar madura. A fruta está madura? $isMadura");
}
}
@override
void assar() {
print("Colocar a massa no forno e experar o bolo de $nome ficar pronto");
}
@override
void fazerMassa() {
print("misturar os(as) $nome com farinha e preparar a massa.");
}
@override
void separarIngredientes() {
print("Colher um(a) $nome.");
}
}
class Legume extends Alimento implements Bolo{
bool isPrecisaCozinhar;
Legume(String nome, double peso, this.isPrecisaCozinhar)
: super(nome, peso);
void cozinhar() {
(isPrecisaCozinhar)
? print("Pronto, o $nome está cozinhado!")
: print("Nem precisou cozinhar");
}
@override
void assar() {
print("Colocar a massa no forno e experar o bolo de $nome ficar pronto");
}
@override
void fazerMassa() {
print("misturar as $nome com farinha e preparar a massa.");
}
@override
void separarIngredientes() {
print("Colher um(a) $nome.");
}
}
class Citrica extends Fruta{
double porcentagemAzedo;
Citrica(String nome, double peso, int diasColheita, int diasMadurar, this.porcentagemAzedo):super (nome,peso,diasMadurar,diasColheita);
suco(){
if (isMadura = true && porcentagemAzedo <= 2){
print("Podemos fazer um ótimo suco com este(a) $nome");
}else{
print("Esse(a) $nome ainda não está madura(o) o suficiente para fazer um bom suco");
}
}
@override
void separarIngredientes(){
print("Você colheu uma $nome. Não é ideal para bolos mas podemos testar.");
super.fazerMassa();
}
}
class Hidrica extends Fruta{
double porcetagemAgua;
Hidrica(String nome, double peso, int diasColheita, int diasMadurar, this.porcetagemAgua):super (nome, peso,diasColheita, diasMadurar);
refrescante(){
if(porcetagemAgua <= 5){
print("Esse(a) $nome está muito refrescante");
}else{
print("Esse(a) $nome ainda não está tão refrescante");
}
}
@override
void assar() {
print("Colocar a massa no forno e experar o bolo de $nome ficar pronto");
}
@override
void fazerMassa() {
print("misturar as $nome com farinha e preparar a massa.");
}
@override
void separarIngredientes() {
print("Colher um(a) $nome.");
}
}
abstract class Bolo{
void separarIngredientes();
void fazerMassa();
void assar();
}