객체 지향 C#

C#의 인터페이스와 추상화

이 레슨에서는 객체의 능력을 설명하는 인터페이스를 정의하고 클래스에서 구현합니다.

소개

인터페이스는 알림 보내기처럼 객체가 무엇을 할 수 있는지를 설명하며, 데이터를 어떻게 저장하는지나 무엇을 상속하는지는 정하지 않습니다. 서로 관련 없는 여러 클래스가 같은 인터페이스를 구현할 수 있습니다. 관례상 C#의 인터페이스 이름은 I로 시작합니다.

INotifier 인터페이스는 Send 메서드만 선언합니다. EmailNotifier 클래스는 알림을 이메일로 출력해서 이 인터페이스를 구현합니다. 변수 notifier의 타입이 INotifier이므로 사용하는 코드는 전송 방식에 의존하지 않습니다. SMS나 Slack 채널을 추가하려면 INotifier를 구현하는 새 클래스만 만들면 됩니다.

실행 가능한 C# 예제

C#
코드 실행 →
Program.cs
using System;

interface INotifier { void Send(string message); }
class EmailNotifier : INotifier { public void Send(string message) => Console.WriteLine($"Email: {message}"); }

class Program
{
    static void Main()
    {
        INotifier notifier = new EmailNotifier();
        notifier.Send("Build complete");
    }
}
실행 결과
Email: Build complete

디버거로 연습하기

중요한 대입이나 조건에 중단점을 두고 Debug를 눌러 다음 줄로 넘어가기 전에 지역 변수 값을 확인하세요.

챌린지로 연습하기

이 레슨에서 배운 내용으로 실제 문제를 풀어 보세요. 모든 챌린지는 브라우저에서 실행되며 즉시 테스트와 AI 리뷰를 받을 수 있습니다.

모든 챌린지