1
resposta

[Projeto] Minha solução

namespace Teste4_Alura.ExercicioOO;

internal class Video : Midia
{
    public int Duracao { get; set; }

    public Video(string nome, int duracao) : base(nome)
    {   
        Nome = nome;
        Duracao = duracao;
    }


    public override void ExibirDetalhes()
    {
        Console.WriteLine($"Video: {this.Nome}  - Duracao: {this.Duracao} minutos");
    }
}
namespace Teste4_Alura.ExercicioOO;

internal class Imagem : Midia
{
    public string Resolucao { get; set; }

    public Imagem(string nome , string resolucao) : base(nome) 
    {
        Nome = nome;
        Resolucao = resolucao;
    }


    public override void ExibirDetalhes()
    {
        Console.WriteLine($"Imagem: {this.Nome} - Resolucao: {this.Resolucao}");
    }
    
}
namespace Teste4_Alura.ExercicioOO;

internal class Midia
{
    public string Nome { get; set; }
    public Midia(string nome)
    {
        Nome = nome;
    }

    public virtual void ExibirDetalhes()
    {

    }

}
#region Exibindo midias
using Teste4_Alura.ExercicioOO;

List<Midia> midias = new List<Midia>
{
    new Imagem("paisagem.jpg", "1920x1080"),
    new Video("filme.mp4", 120)

    
};

foreach (var midia in midias)
{
    midia.ExibirDetalhes();
}


#endregion
1 resposta

Olá, Ulysses, como vai?

Seu código atende corretamente à proposta do exercício e demonstra um bom entendimento de polimorfismo de subtipos. A classe base define o comportamento comum e as classes derivadas especializam a exibição, permitindo que a chamada de ExibirDetalhes funcione de forma transparente dentro da lista de Midia.

Obrigado por compartilhar sua implementação e fique à vontade para continuar utilizando o fórum sempre que quiser trocar ideias ou tirar dúvidas.

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