C#Abstract类两个方法同名但输入不同

时间:2017-10-03 12:44:28

标签: c#

public abstract class A
{


}

public class B:A
{
     public bool method(int n1, int n2)
    {
       //condition returns true or false
    }
}

public class C:A
{
     public bool method(int n1, int n2, out int res, out string label)
    {
       //condition returns true or false and also gives out res, label
    }
}

我有一个抽象类,它具有相同的方法名,但具有不同的输入和不同的继承类。 我有另一个类文件,我必须在不同情况下使用这两种方法,如何在具有适当访问修饰符的抽象类A中添加它们。 提前致谢

1 个答案:

答案 0 :(得分:-2)

我怀疑你在寻找的是:

public abstract class A
{
    public abstract int add(int n1, int n2);
    public abstract int add(int n1, int n2, int n3);
}

public abstract class B : A
{
    public override int add(int n1, int n2)
    {
        return (n1 + n2);
    }
}

public class C : B
{
    public override int add(int n1, int n2, int n3)
    {
        return (n1 + n2 + n3);
    }
}

最终,C(声明为abstract)需要为两个add变体提供实现(它通过直接实现其中一个变体来实现)其中一个通过B)。

如果您希望C从而不是继承自B,但只提供一个实现 - 如果C不是abstract则无法实现。