我们知道在 C# 中允许多重(接口(interface))继承,但是,我想知道两个接口(interface)是否有可能 示例:
interface calc1
{
int addsub(int a, int b);
}
interface calc2
{
int addsub(int x, int y);
}
方法名相同,类型相同,参数类型相同
会在上面的类中继承吗?
class Calculation : calc1, calc2
{
public int result1;
public int addsub(int a, int b)
{
return result1 = a + b;
}
public int result2;
public int addsub(int x, int y)
{
return result2= a - b;
}
}
如果是,那么将调用哪个接口(interface)方法。
提前致谢。
最佳答案
你不能像那样重载方法,不——它们具有相同的签名。您的选择是:
- 使用一个实现,将被两个接口(interface)调用
对其中一个或两个方法使用显式接口(interface)实现,例如
int calc2.addsub(int x, int y) { return result2 = a - b; }
如果你对这两种方法都这样做,这两种方法都不能在
Calculation
类型的引用上调用;相反,您必须在调用方法之前强制转换为一个接口(interface)或另一个接口(interface),包括在类中。例如:public void ShowBoth() { Console.WriteLine(((calc1)this).addsub(5, 3)); // 8 Console.WriteLine(((calc2)this).addsub(5, 3)); // 2 }
关于c# - 从多个接口(interface)继承相同的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32623554/