[c#] C# 인터페이스 메소드 오버로딩

C#에서는 인터페이스를 통해 같은 메소드 이름을 가진 여러 메소드를 정의할 수 있습니다. 이를 인터페이스 메소드 오버로딩이라고 합니다.

인터페이스를 구현하는 클래스에서는 해당 인터페이스에 정의된 메소드를 모두 구현해야 합니다. 그러다 보니 인터페이스 메소드 오버로딩이 발생할 수 있습니다. 이 경우, 클래스 내에서 오버로딩된 메소드들은 모두 그에 맞는 시그니처를 가져야 합니다.

예를 들어, 다음과 같이 인터페이스 IShape와 이를 구현하는 Rectangle 클래스가 있다고 가정해봅시다.

public interface IShape
{
    void Draw();
    void Draw(int color);
}

public class Rectangle : IShape
{
    public void Draw()
    {
        // draw the rectangle
    }

    public void Draw(int color)
    {
        // draw the rectangle with specified color
    }
}

위의 예제에서 IShape 인터페이스는 DrawDraw(int color) 두 가지 메소드를 정의합니다. 그리고 Rectangle 클래스에서는 이 두 메소드를 모두 구현합니다.

이처럼, C#에서는 인터페이스를 통해 메소드 오버로딩을 지원하며, 이를 통해 다양한 시그니처를 가진 메소드를 정의할 수 있습니다.

이렇게 인터페이스 메소드 오버로딩을 통해, 각각의 구현 클래스에서 적합한 방식으로 메소드를 오버로딩하여 활용할 수 있습니다.

더 자세한 내용은 Microsoft 공식 문서를 참고하시기 바랍니다.