Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

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

Program.cs

using Instituicao.Modelos;
using Instituicao.Arquivos;

Analista analista = new Analista("Analista de Sistemas");
Docente docente = new Docente("Docente de Matemática");

Console.Clear();
Certificado cerf1 = new Certificado(analista); 
Certificado certf2 = new Certificado(docente);

Analista.cs

namespace Instituicao.Modelos;
internal class Analista : Profissao {

    public Analista(string? titulo) : base (titulo) {}
}

Docente.cs

namespace Instituicao.Modelos;
internal class Docente : Profissao {

    public Docente(string? titulo) : base (titulo) {}
}

Profissao.cs

namespace Instituicao.Modelos;
abstract class Profissao {
    public string? Titulo;

    public Profissao(string? titulo) {
        Titulo = titulo;
    }
}

Certificado.cs

namespace Instituicao.Arquivos;
using Instituicao.Modelos;
class Certificado {

    public Certificado(Profissao prf) {
        Console.WriteLine($"Certificado emitido para {prf.Titulo}");
    }
}
1 resposta
solução!

Oi, Diego! Como vai?

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

Gostei da forma como você aplicou herança criando Analista e Docente a partir de Profissao, além de usar o polimorfismo ao passar diferentes profissões para o Certificado. Isso mostra um bom entendimento de como reaproveitar código e deixar a solução mais flexível.

Você pode usar propriedades com encapsulamento ao invés de campos públicos, deixando o código mais seguro e organizado:


class Profissao {
    public string Titulo { get; private set; }

    public Profissao(string titulo) {
        Titulo = titulo;
    }
}

Esse código define uma propriedade com get publico e set privado, permitindo ler o valor fora da classe, mas evitando alterações indevidas.

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