명시적 인터페이스 구현을 통해 이름이 같은 각 인터페이스 멤소드를 별도로 구현할 수있다.
아래 예시는 섭씨온도와 화씨온도를 구하는 예시이며, 두 인터페이스 모두 GetTemperature()라는 공통 메소드를 가진다.
ICelsius, IFahrenheit 인터페이스
interface ICelsius
{
float GetTemperature();
}
interface IFahrenheit
{
float GetTemperature();
}
ICelsius, IFahrenheit을 상속받은 Temperature 클래스
class Temperature : ICelsius, IFahrenheit
{
float temperature;
public Temperature(float temperature)
{
this.temperature = temperature;
}
float ICelsius.GetTemperature()
{
return temperature;
}
float IFahrenheit.GetTemperature()
{
return (temperature * 1.8f) + 32;
}
}
테스트
class MainApp
{
static void Main()
{
Temperature temp = new Temperature(36.5f);
ICelsius ctemp = temp as ICelsius;
IFahrenheit ftemp = temp as IFahrenheit;
Console.WriteLine(ctemp.GetTemperature());
Console.WriteLine(ftemp.GetTemperature());
}
}
결과
36.5
97.7
참조
'아카이빙 > C#' 카테고리의 다른 글
[C#] 프로퍼티 (0) | 2018.06.20 |
---|---|
[C#] 추상클래스와 인터페이스 (0) | 2018.06.18 |
[C#] 인터페이스 다중 상속 (0) | 2018.06.18 |
[C#] 인터페이스를 상속하는 인터페이스 (0) | 2018.06.18 |
[C#] 인터페이스 (0) | 2018.06.18 |