1
resposta

[Projeto] [Projeto] Desafio: hora da prática - Exercicio 4

internal abstract class Animais
{
    internal abstract string EmitirSom();
}

internal class Cachorro : Animais
{
    internal override string EmitirSom()
    {
        return "Som de cachorro";
    }
}

internal class Papagaio : Animais
{
    internal override string EmitirSom()
    {
        return "Som de papagaio";
    }
}

internal class Salmao : Animais
{
    internal override string EmitirSom()
    {
        return "Som de peixe";
    }
}
1 resposta

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.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!