Estou compartilhando o código que desenvolvi para a atividade. Se tiverem alguma sugestão para melhorar, ficarei feliz em saber!
void main(List<String> arguments) {
  
  Mamifero mamifero1 = Mamifero("Cachorro", 20, "Branco", 2);
  Ave ave1 = Ave("Urubu", 2, "Preto", "Longo");
  Peixe peixe1 = Peixe("Peixe-Lua", 2000, "Acizentado", "Salgada");
  mamifero1.printAnimal();
  ave1.printAnimal();
  peixe1.printAnimal();
  mamifero1.gestacaoInfo();
  ave1.bicarArvore();
  peixe1.nadando();
}
class Animal {
  String nome;
  double peso;
  String cor;
  Animal(this.nome, this.peso, this.cor);
  void printAnimal() {
    print(
        "O animal $nome é $cor e pesa $peso kg");
  }
}
class Mamifero extends Animal {
  int tempoDeGestacao;
  Mamifero(String nome, double peso, String cor, this.tempoDeGestacao)
      : super(nome, peso, cor);
  void gestacaoInfo() {
    print("O mamífero $nome tem um tempo de gestação de $tempoDeGestacao meses");
  }
}
class Ave extends Animal {
  String tipoDeBico;
  Ave(String nome, double peso, String cor, this.tipoDeBico)
      : super(nome, peso, cor);
  void bicarArvore() {
    print("A ave $nome está bicando a árvore com seu bico $tipoDeBico");
  }
}
class Peixe extends Animal{
  String tipoDeAgua;
  Peixe(String nome, double peso, String cor, this.tipoDeAgua) : super(nome, peso, cor);
  void nadando(){
    print("O peixe $nome está nadando na água $tipoDeAgua");
  }
}
Terminal:
 
  
 
            