C# 인터페이스 멤버는 명시적으로 또는 암시적으로 구현할 수 있습니다.
암시적 구현은 멤버 이름 앞에 구현되는 인터페이스의 이름을 포함하지 않으므로 컴파일러가 이를 유추합니다. 멤버는 공개로 노출되며 개체가 구체적인 유형으로 캐스팅될 때 액세스할 수 있습니다.
메서드 호출도 다르지 않습니다. 클래스의 개체를 만들고 호출하기만 하면 됩니다.
여러 인터페이스에 동일한 메서드 이름이 선언되어 있으면 암시적 인터페이스를 사용할 수 없습니다.
예
interface ICar {
void displayCar();
}
interface IBike {
void displayBike();
}
class ShowRoom : ICar, IBike {
public void displayCar() {
throw new NotImplementedException();
}
public void displayBike() {
throw new NotImplementedException();
}
}
class Program {
static void Main() {
ICar car = new ShowRoom();
IBike bike = new ShowRoom();
Console.ReadKey();
}
}