1
resposta

Faça como eu fiz: certificado de profissões

abstract class Profissao
{
    public string Titulo { get; }

    protected Profissao(string titulo)
    {
        Titulo = titulo;
    }
}
internal class Docente : Profissao
{
    public Docente(string titulo)
    : base(titulo)
    {
        
    }
}
internal class Analista : Profissao
{
    public Analista(string titulo)
    : base(titulo)
    {
        
    }
}
class Certificado
{
    public Certificado(Profissao prof)
    {
        Console.WriteLine($"Certificado emitido para: {prof.Titulo}");
    }
}
        Analista a1 = new("Analista de Sistemas");
        Docente d1 = new("Docente de Matemática");

        Certificado c1 = new(a1);
        Certificado c2 = new(d1);
1 resposta

Olá, Pedro, como vai?

O seu código está correto e demonstra uma boa compreensão sobre o uso de classes abstratas e herança em C#. Você aplicou corretamente o conceito de impedir a instância direta da classe base ao utilizar o modificador abstract e utilizou bem o construtor protegido para repassar o título às classes filhas. O uso de target-typed new na instância dos objetos também deixa o código moderno e limpo.

Parabéns pelo excelente exercício e obrigado por compartilhar sua solução com a comunidade. Continue praticando e postando sua evolução.

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