Ejercicios de C#

Calcular la nómina de los empleados con polimorfismo en C#

En esta lección vas a calcular el total de los salarios de distintos tipos de empleados a través de una clase base abstracta.

Introducción

Cada tipo de empleado tiene su propia forma de calcular el salario: el empleado con sueldo fijo y el empleado que cobra por horas. Al definir una clase base abstracta con el método Pay(), el código de la nómina puede tratar a todos los empleados de la misma forma.

La clase Salaried devuelve el sueldo fijo, mientras que Hourly calcula el salario multiplicando la tarifa por hora por el número de horas trabajadas. El arreglo staff tiene el tipo común Employee, pero al llamar a employee.Pay(), el programa elige automáticamente el cálculo correcto para cada tipo de empleado. El total de los salarios es 1000 + 20 × 10 = 1200.

Ejemplo de C# ejecutable

C#
Ejecutar 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 de la ejecución
1200

Practica con el depurador

Pon un punto de interrupción en una asignación o condición importante, pulsa Debug y revisa los valores locales antes de pasar a la siguiente línea.

Practica con un reto

Usa lo que cubre esta lección para resolver un problema real. Cada reto se ejecuta en el navegador, con pruebas al instante y una revisión de IA.

Todos los retos