Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Resposta - Exercício 4

Classe Animal:
``
namespace exercise72.Models;

internal class Animal
{
public virtual string EmitSound()
{
return "Animal sounds...";
}
}
``
Classe Mammal:

namespace exercise72.Models;

internal class Mammal : Animal
{
    public override string EmitSound()
    {
        return "Mammal sounds...";
    }
}

Classe Bird:

namespace exercise72.Models;

internal class Bird : Animal
{
    public override string EmitSound()
    {
        return "Bird sounds...";
    }
}

Classe Fish:

namespace exercise72.Models;

internal class Fish : Animal
{
    public override string EmitSound()
    {
        return "Fish sounds...";
    }
}

Instâncias:

using exercise72.Models;

Mammal mamal = new Mammal();
Console.WriteLine(mamal.EmitSound());

Bird bird = new Bird();
Console.WriteLine(bird.EmitSound());

Fish fish = new Fish();
Console.WriteLine(fish.EmitSound());
2 respostas
solução!

Oi, Carlos! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Seu uso de polimorfismo ficou claro e organizado, mostrando como cada classe redefine EmitSound() de forma simples. Gostei de como você instanciou os objetos para testar os retornos, ficou bem direto.

Uma dica interessante para o futuro é criar um método que receba um Animal e chame EmitSound() sem precisar saber o tipo concreto. Isso reforça o uso do polimorfismo.

Veja este exemplo:


public void FazerSom(Animal animal){
    Console.WriteLine(animal.EmitSound());
}

Esse código recebe qualquer tipo derivado de Animal e imprime o som correspondente.

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

Obrigado pela dica Rafaela, vou utiliza-la no futuro quando tiver um desafio semalhante.