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 리뷰를 받을 수 있습니다.
모든 챌린지