Penei um pouquinho para chamar as funções das classes no Main, mas no final deu tudo certo!
Aqui está meu código:
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();
}
class Alimento {
String nome;
double peso;
Alimento(this.nome, this.peso);
}
class Fruta extends Alimento {
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");
}
}
}
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");
}
}
}
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");
}
}
}
Resultado dos prints no terminal: