1
resposta

Faça como eu fiz: cadastro de funcionários

internal class Funcionario
{
    public string Nome { get; }
    public string Cargo { get; }

    public Funcionario(string nome, string cargo)
    {
        Nome = nome;
        Cargo = cargo;
    }
}
internal class FreeLancer : Funcionario
{
    public double ValorDoProjeto { get; }

    public FreeLancer(string nome, string cargo, double valorDoPorjeto)
    : base (nome, cargo)
    {
        ValorDoProjeto = valorDoPorjeto;
    }
}
internal class Interno : Funcionario
{
    public double Salario { get; }

    public Interno(string nome, string cargo, double salario)
    : base(nome, cargo)
    {
        Salario = salario;
    }
}
internal class Program
{
    public static void Main()
    {
        Interno i1 = new("Pedro", "Estagiário", 1650.90);
        FreeLancer f1 = new("João", "Vendedor", 5400.78);

        Console.WriteLine($"Funcionário: {i1.Nome} - Cargo: {i1.Cargo} - Salário: {i1.Salario}");
        Console.WriteLine($"Funcionário: {f1.Nome} - Cargo: {f1.Cargo} - Projeto atual: {f1.ValorDoProjeto}");

    }
}
1 resposta

Olá, Pedro, como vai?

O seu código demonstra um bom entendimento sobre a aplicação de herança e o uso de construtores com a palavra-chave base para evitar a repetição de atributos comuns. A implementação das classes e a instância dos objetos no método Main seguem corretamente a lógica da orientação a objetos proposta no exercício.

Como uma sugestão de melhoria, em sistemas financeiros ou que lidam com valores monetários em C#, é recomendado utilizar o tipo decimal em vez de double, pois o decimal oferece uma precisão maior para cálculos que envolvem dinheiro.

Parabéns pela dedicação ao praticar esses conceitos e por compartilhar o seu progresso conosco, continue postando suas resoluções para fortalecer seu aprendizado.

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