Solucionado (ver solução)

Importante

Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!

Solucionado
(ver solução)
1
resposta

[Projeto] Faça como eu fiz: relatório de funcionários

Classe Program:

Funcionario f1 = new Gerente();
Funcionario f2 = new Desenvolvedor();

Console.WriteLine(f1.GerarRelatorio());
Console.WriteLine(f2.GerarRelatorio());

Classe Funcionario:

namespace Polimorfismo;

internal class Funcionario
{
    public virtual string GerarRelatorio()
    {
        return "Relatório genérico do funcionário.";
    }
}

Classe Gerente:

namespace Polimorfismo;

internal class Gerente : Funcionario
{
    public override string GerarRelatorio()
    {
        return "Relatório do gerente: supervisiona a equipe.";
    }
}

Classe Desenvolvedor:

namespace Polimorfismo;

internal class Desenvolvedor : Funcionario
{
    public override string GerarRelatorio()
    {
        return "Relatório do desenvolvedor: escreve código e corrige bugs.";
    }
}
1 resposta
solução!

Oi, Fabiano! Como vai?

Gostei da forma como você aplicou o polimorfismo de subtipos, utilizando referências do tipo Funcionario para instanciar Gerente e Desenvolvedor. Isso demonstra um bom entendimento do uso de virtual e override, permitindo que cada classe forneça seu próprio comportamento ao método GerarRelatorio().

Uma dica interessante para o futuro é utilizar propriedades para identificar cada funcionário e enriquecer os relatórios. Veja este exemplo:

<pre><code>
string nome = "Fabiano";
Console.WriteLine(nome);
</code></pre>

Esse código cria uma variável chamada nome e exibe seu valor no console, tornando as saídas mais personalizadas.

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