1
resposta

Minha solução do exercício

namespace PraticandoHerancas.Interfaces;

internal interface ICurso
{
    void ValidarConteudo();
    void PublicarCurso();
}
namespace PraticandoHerancas.Classes;

internal class Instrutor
{
    //Atributos
    public string Nome { get; }
    public string Especialidade { get; }
    
    //Construtor
    public Instrutor(string nome, string especialidade)
    {
        Nome = nome;
        Especialidade = especialidade;
    }

}
using PraticandoHerancas.Interfaces;

namespace PraticandoHerancas.Classes;

internal class CursoDesign : ICurso
{
    //Atributos
    public string NomeCurso { get; }
    public Instrutor Instrutor { get; }

    // Construtor

    public CursoDesign(string nomeCurso, Instrutor instrutor)
    {
        NomeCurso = nomeCurso;
        Instrutor = instrutor;
    }

    //Métodos
    public void ValidarConteudo()
    {
        Console.WriteLine($"Validando conteúdo do curso de design: {NomeCurso}");
    }
    public void PublicarCurso()
    {
        Console.WriteLine($"Curso publicado com sucesso: {NomeCurso} - {Instrutor.Nome}");
    }
}
namespace PraticandoHerancas.Classes;
using PraticandoHerancas.Interfaces;

internal class CursoProgramacao: ICurso
{
    //Atributos
    public string NomeCurso { get; }
    public Instrutor Instrutor { get; }

    //Construtor
    public CursoProgramacao(string nomeCurso, Instrutor instrutor)
    {
        NomeCurso = nomeCurso;
        Instrutor = instrutor;
    }

    //Métodos
    public void ValidarConteudo()
    {
        Console.WriteLine($"Validando conteúdo do curso de programação: {NomeCurso}");
    }
    public void PublicarCurso()
    {
        Console.WriteLine($"Curso publicado com sucesso: {NomeCurso} - {Instrutor.Nome}");
    }
}

Matricule-se agora e aproveite até 50% OFF

O maior desconto do ano para você evoluir com a maior escola de tecnologia

QUERO APROVEITAR
1 resposta

Oi, Cristin! Como vai?
Agradeço por compartilhar.

Seu uso de interface para padronizar os comportamentos dos cursos ficou muito bom. O modo como você aplicou Instrutor dentro das classes mostra que compreendeu bem a composição e a reutilização de código.

Uma dica interessante para o futuro é usar ToString() para exibir informações de forma personalizada quando imprimir objetos no console.


public override string ToString()
{
    return $"Instrutor: {Nome}, Especialidade: {Especialidade}";
}

Esse método retorna uma string formatada toda vez que o objeto for exibido com Console.WriteLine(instrutor);.

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