1
resposta

[Projeto] Minha resolução

namespace Teste4_Alura.ExercicioOO;

internal class Desenvolvedor4 : Funcionario4
{
    public override string GerarRelatorio()
    {
        return "Relatório do desenvolvedor: escreve código e corrige bugs.";
    }
}
namespace Teste4_Alura.ExercicioOO;

internal class Gerente4 : Funcionario4
{
    public override string GerarRelatorio()
    {
        return "Relatório do gerente: supervisiona a equipe.";
    }
}
namespace Teste4_Alura.ExercicioOO;

internal abstract class Funcionario4 
{
    public virtual string GerarRelatorio()
    {
        return "";
    }

}
#region Relatorio de Sistema
using Teste4_Alura.ExercicioOO;

Funcionario4 f1 = new Gerente4();
Funcionario4 f2 = new Desenvolvedor4();

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


#endregion
1 resposta

Olá, Ulysses! Como vai?

Parabéns pela resolução da atividade!

Observei que você explorou o uso de classes abstratas para definir comportamentos, utilizou muito bem a sobrescrita de métodos para personalizar relatórios e ainda compreendeu a importância do polimorfismo para diferenciar funções dentro do sistema.

Uma dica interessante para o futuro é aplicar o conceito de coleção de funcionários para percorrer todos os relatórios de forma dinâmica. Assim:

List<Funcionario4> funcionarios = new List<Funcionario4>
{
    new Gerente4(),
    new Desenvolvedor4()
};

foreach (var funcionario in funcionarios)
{
    Console.WriteLine(funcionario.GerarRelatorio());
}

Isso faz com que o sistema seja facilmente escalável ao adicionar novos tipos de funcionários.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

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