隐式接口继承
本文关键字:继承 接口 | 更新日期: 2023-09-27 18:28:34
我只是想知道我们现在在ExampleClass中实际使用的是这两个方法中的哪一个,来自IFirstInterface的bool IsReal()还是ISecondInterface:
interface IFirstInterface
{
bool IsReal();
}
interface ISecondInterface
{
bool IsReal();
}
public class ExampleClass : IFirstInterface, ISecondInterface
{
public bool IsReal() {}
//public bool IsReal is IFirstInterface or ISecondInterface method.
}
有人能解释一下隐式接口在C#中是如何工作的吗。
在Explicit Interface Implementation指南中,您可以阅读以下语句:
如果一个类实现了两个接口,其中包含具有相同的签名,则在类上实现该成员将导致两个接口都使用该成员作为其实现。
您可以显式地实现一个或两个接口来覆盖此行为:
interface IFirstInterface
{
bool IsReal();
}
interface ISecondInterface
{
bool IsReal();
}
public class ExampleClass : IFirstInterface, ISecondInterface
{
// will be used for IFirstInterface
bool IFirstInterface.IsReal(){}
// will be used for ISecondInterface
public bool IsReal(){}
}
为了清晰起见,您应该实现这两个函数公共布尔IFirstInterface.IsReal(){}public bool ISecondInterface.IsReal(){}