Interface A
{
int Add(int a,int b);
}
Interface B
{
int Add(int a,int b);
}
Class D : A, B
{
int Add(int a,int b)
{
return a+b;
}
}
代码工作正常,没有产生任何错误。 D类是使用哪种接口的方法?
答案 0 :(得分:6)
两者都没有,因为两个接口都没有方法,只有方法签名。您在D中的方法实现了两个接口提供的签名,因此它可以工作。
请记住,接口仅指定实现中必须存在的方法的签名。
答案 1 :(得分:2)
由于两个接口上的方法签名是相同的,并且D类实现了这些方法(使用单个函数),因此函数实现的接口并不重要,因此编译器很高兴。
但是,通过将函数声明为
,可以为每个接口提供两种不同的实现class D : A, B
{
int A.Add(int a, int b)
{
}
int B.Add(int a, int b)
{
}
}
答案 2 :(得分:1)
D类正在使用哪个接口的方法?
都不是。接口没有方法,它们只定义实现应该具有的方法签名。你正在考虑倒退。
D通过提供该方法满足接口A和B.