[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
인터페이스는 Draw
와 Draw(int color)
두 가지 메소드를 정의합니다. 그리고 Rectangle
클래스에서는 이 두 메소드를 모두 구현합니다.
이처럼, C#에서는 인터페이스를 통해 메소드 오버로딩을 지원하며, 이를 통해 다양한 시그니처를 가진 메소드를 정의할 수 있습니다.
이렇게 인터페이스 메소드 오버로딩을 통해, 각각의 구현 클래스에서 적합한 방식으로 메소드를 오버로딩하여 활용할 수 있습니다.
더 자세한 내용은 Microsoft 공식 문서를 참고하시기 바랍니다.