C#中接口的隐式与显式实现:何时以及如何使用?
大家好!我刚开始学习C#,遇到了接口这个话题。看起来一切都很好理解:接口是一种契约,类来实现它。但我发现接口可以通过两种方式实现:隐式(implicit)和显式(explicit)。这让我感到困惑。
下面是一个例子:
public interface IWorker
{
void Work();
}
public class Employee : IWorker
{
// 隐式实现
public void Work()
{
Console.WriteLine("Employee works");
}
}
一切正常。但我读到也可以这样做:
public class Manager : IWorker
{
// 显式实现
void IWorker.Work()
{
Console.WriteLine("Manager works");
}
}
现在,如果我写:
Manager m = new Manager();
m.Work(); // 编译错误!
这无法编译!那显式实现有什么用?什么时候该用它?除了语法之外,到底有什么区别?希望能得到详细解释。