[c#] C# 인터페이스와 다형성

C#에서 인터페이스는 클래스나 구조체와 같은 형식을 정의하는데 사용됩니다. 인터페이스를 구현하는 클래스나 구조체는 인터페이스에서 정의한 멤버들을 구현해야 합니다.

인터페이스의 정의

인터페이스는 interface 예약어를 사용하여 정의됩니다. 아래의 예시와 같이 인터페이스를 정의할 수 있습니다.

public interface IShape
{
    void Draw();
    double Area { get; }
}

위의 코드에서 IShape 인터페이스는 Draw 메서드와 Area 속성을 정의하고 있습니다.

인터페이스의 구현

인터페이스를 구현하는 클래스는 class 예약어 뒤에 콜론을 사용하여 인터페이스를 명시하고, 해당 인터페이스의 멤버들을 구현합니다.

public class Circle : IShape
{
    public void Draw()
    {
        // draw the circle
    }

    public double Area
    {
        get
        {
            // calculate and return the area of the circle
        }
    }
}

위의 코드에서 Circle 클래스는 IShape 인터페이스를 구현하고 있으며, Draw 메서드와 Area 속성을 구현하고 있습니다.

다형성과 인터페이스

다형성(polymorphism)은 객체 지향 프로그래밍에서 중요한 개념 중 하나입니다. C#에서 인터페이스는 다형성을 구현하는데 사용될 수 있습니다. 다양한 클래스가 같은 인터페이스를 구현하면 해당 인터페이스를 이용한 다형성 코드를 작성할 수 있습니다.

IShape shape = new Circle();
shape.Draw();
double area = shape.Area;

위의 예시에서 IShape 인터페이스를 이용하여 Circle 클래스의 다형성을 구현하고 있습니다.

마무리

C#에서 인터페이스를 이용하면 코드의 유연성을 높이고, 다형성을 구현할 수 있습니다. 인터페이스의 정의와 구현을 통해 객체 지향 프로그래밍의 핵심 개념을 쉽게 이해하고 활용할 수 있게 됩니다.

참고 자료: Microsoft Docs - C# 인터페이스


이 포스트는 C# 인터페이스와 다형성에 대해 소개하고, 인터페이스를 구현함으로써 다형성을 어떻게 활용하는 지에 대해 설명했습니다.