1
resposta

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

public abstract class Funcionario
{
public abstract string GerarRelatorio();
}


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


 public class Desenvolvedor : Funcionario
 {
 public override string GerarRelatorio()
 {
     return "Relatório do desenvolvedor: escrever código e corrigir bugs";
 }
 }
1 resposta

Oii, Jonas!

Parabéns por concluir o desafio e por aplicar conceitos tão fundamentais de Orientação a Objetos no C#.

Sua solução foi além do proposto ao utilizar uma classe abstrata. Essa é uma decisão excelente, pois, ao definir Funcionario como abstract, você garante que ninguém consiga instanciar um funcionário "genérico", obrigando a criação de tipos específicos como Gerente ou Desenvolvedor. O uso do override nas subclasses mostra que você compreendeu bem como o polimorfismo permite que cada objeto responda de maneira particular a uma mesma chamada de método.

Pra complementar seus estudos sobre como o C# gerencia esses comportamentos, recomendo a leitura da documentação sobre Classes e Membros Abstratos.

Você percebeu como transformar a classe em abstrata ajuda a evitar que o sistema crie objetos que não teriam um comportamento completo na vida real?

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