两个接口有相同的方法
本文关键字:方法 接口 两个 | 更新日期: 2023-09-27 17:51:03
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正在使用哪个接口的方法?
都没有,因为两个接口都没有方法,只有方法签名。您在D中的方法实现了两个接口提供的签名,因此它可以工作。
请记住,接口仅仅指定了必须存在于实现中的方法的签名。
由于两个接口上的方法签名是相同的,并且类D实现了这些方法(使用单个函数),那么该函数实现哪个接口并不重要,因此编译器很高兴。
但是,通过将函数声明为
,可以为每个接口指定两个不同的实现class D : A, B
{
int A.Add(int a, int b)
{
}
int B.Add(int a, int b)
{
}
}
类D正在使用哪个接口的方法?
。接口没有方法,它们只定义实现应该具有的方法签名。你想反了。
- D没有用A或B的方法。
- A在任何实现了D的A实例上使用D的方法
- B在任何实现了D的B实例上使用D的方法
D通过提供该方法同时满足接口A和接口B。