gpt4 book ai didi

c# - 从多个接口(interface)继承相同的方法

转载 作者:太空狗 更新时间:2023-10-30 00:18:39 25 4
gpt4 key购买 nike

我们知道在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com