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:
