C# 演習

C#のポリモーフィズムで社員の給与を計算する

このレッスンでは、抽象基底クラスを通して、いろいろな種類の社員の給与の合計を計算します。

はじめに

社員の種類ごとに給与の計算方法は違います。固定給の社員と、時給で働く社員です。Pay()メソッドを持つ抽象基底クラスを定義すれば、給与を計算するコードはすべての社員を同じ方法で扱えます。

クラスSalariedは固定の給与を返し、Hourlyは時給に働いた時間を掛けて給与を計算します。配列staffの型は共通のEmployeeですが、employee.Pay()を呼ぶと、プログラムは社員の種類ごとに正しい計算方法を自動で選びます。給与の合計は1000 + 20 × 10 = 1200です。

実行できる C# の例

C#
コードを実行 →
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()));
    }
}
実行結果
1200

デバッガーで練習する

大事な代入や条件にブレークポイントを置いて Debug を押し、次の行に進む前にローカル変数の値を確かめましょう。

チャレンジで練習する

このレッスンの内容を使って実際の問題を解きましょう。各チャレンジはブラウザで動き、すぐにテストされ、AI のレビューも受けられます。

すべてのチャレンジ