Exercícios de C#

Calcular a folha de pagamento com polimorfismo em C#

Nesta lição, você vai calcular o total de salários de vários tipos de funcionários por meio de uma classe base abstrata.

Introdução

Cada tipo de funcionário tem sua forma de calcular o salário: o funcionário com salário fixo e o que trabalha por hora. Ao definir uma classe base abstrata com o método Pay(), o código da folha pode tratar todos os funcionários da mesma maneira.

A classe Salaried retorna o salário fixo, e Hourly calcula o valor multiplicando o preço da hora pelas horas trabalhadas. O array staff tem o tipo comum Employee, mas ao chamar employee.Pay() o programa escolhe sozinho o cálculo certo de cada tipo de funcionário. O total é 1000 + 20 × 10 = 1200.

Exemplo de C# executável

C#
Rodar código →
Program.cs
using System;
using System.Linq;
abstract class Employee { public abstract decimal Pay(); }
class Salaried(decimal salary) : Employee { public override decimal Pay() => salary; }
class Hourly(decimal rate, int hours) : Employee { public override decimal Pay() => rate * hours; }
class Program
{
    static void Main()
    {
        Employee[] staff = { new Salaried(1000), new Hourly(20, 10) };
        Console.WriteLine(staff.Sum(employee => employee.Pay()));
    }
}
Resultado da execução
1200

Pratique com o depurador

Coloque um breakpoint em uma atribuição ou condição importante, clique em Debug e veja os valores das variáveis locais antes de passar para a próxima linha.

Pratique com um desafio

Use o conteúdo desta lição para resolver um problema real. Cada desafio roda no navegador, com testes instantâneos e uma revisão por IA.

Todos os desafios