Gehälter mit Polymorphie berechnen in C#
In dieser Lektion berechnest du über eine abstrakte Basisklasse die Gehaltssumme für verschiedene Arten von Mitarbeitern.
Einführung
Jede Mitarbeiterart hat ihre eigene Gehaltsberechnung: Mitarbeiter mit festem Gehalt und Mitarbeiter, die nach Stunden bezahlt werden. Definierst du eine abstrakte Basisklasse mit der Methode Pay(), kann der Code für die Gehaltsabrechnung alle Mitarbeiter auf die gleiche Weise behandeln.
Die Klasse Salaried gibt das feste Gehalt zurück, Hourly berechnet das Gehalt aus Stundensatz mal geleisteten Stunden. Das Array staff hat den gemeinsamen Typ Employee, beim Aufruf von employee.Pay() wählt das Programm aber automatisch die richtige Berechnung jeder Mitarbeiterart. Die Gehaltssumme ist 1000 + 20 × 10 = 1200.
Ausführbares C#-Beispiel
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()));
}
}
1200Mit dem Debugger üben
Mit einer Challenge üben
Nutze den Inhalt dieser Lektion, um ein echtes Problem zu lösen. Jede Challenge läuft im Browser, mit sofortigen Tests und einem KI-Review.
Alle Challenges