Oi, Eduardo! Como vai?
Seu uso de classe abstrata em Animais ficou bem alinhado com a proposta de praticar herança e polimorfismo, já que cada animal sobrescreve o método EmitirSom() com um comportamento próprio.
Uma dica interessante para o futuro é criar uma lista do tipo Animais para percorrer todos os objetos e chamar o mesmo método em cada um deles:
List<Animais> animais = new List<Animais>
{
new Cachorro(),
new Papagaio(),
new Salmao()
};
foreach (Animais animal in animais)
{
Console.WriteLine(animal.EmitirSom());
}
Esse código cria uma lista com diferentes animais e usa foreach para executar EmitirSom() em cada objeto, mostrando na prática como o polimorfismo facilita a reutilização do método.
Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!