C#에서는 인터페이스 다중 상속이 가능하지만, 같은 메서드가 여러 인터페이스에 정의되어 있을 때 충돌 문제가 발생할 수 있습니다. 이러한 충돌을 해결하는 전략을 살펴보겠습니다.
1. 기본적인 인터페이스 구현
인터페이스에 같은 이름의 메서드가 있을 경우, 클래스에서 공통 구현을 하면 모든 인터페이스에 동일하게 적용됩니다.
public interface IA
{
void Show();
}
public interface IB
{
void Show();
}
public class MyClass : IA, IB
{
public void Show()
{
Console.WriteLine("공통 구현 메서드 호출");
}
}
2. 명시적 인터페이스 구현
인터페이스 메서드 이름이 충돌할 때, 각각 다르게 구현하고 싶으면 명시적 인터페이스 구현을 이용합니다.
public class MyClass : IA, IB
{
void IA.Show()
{
Console.WriteLine("IA.Show 구현");
}
void IB.Show()
{
Console.WriteLine("IB.Show 구현");
}
}
명시적 구현은 클래스 인스턴스에서 바로 호출할 수 없고, 인터페이스 형으로 캐스팅 후 호출해야 합니다.
3. 상황에 맞는 활용
충돌 메서드가 실제로 동일한 기능이라면 기본 구현만으로 충분하고, 다르게 동작해야 한다면 명시적 구현 방식을 이용하는 것이 좋습니다.
이처럼 C#은 인터페이스 다중 상속 충돌을 유연하게 해결할 수 있는 기능을 제공합니다.
'C#' 카테고리의 다른 글
| C# 애플리케이션 도메인(AppDomain) 관리와 활용 (0) | 2026.07.02 |
|---|---|
| C# ConcurrentDictionary를 이용한 안전한 데이터 공유 (1) | 2026.07.01 |
| C# Reflection으로 Private 멤버 접근 및 테스트 활용 (0) | 2026.06.30 |
| C# 이벤트 vs 콜백(CallBack) 비교와 선택 기준 (0) | 2026.06.26 |
| C# sealed 키워드로 상속 제한하기 (0) | 2026.06.26 |