无法理解接口继承

时间:2016-08-25 06:35:53

标签: c#

以下代码给出了错误

  

错误2类型' Series.AB'已包含' B'的定义

 interface IA
{
    void A();
}
interface IB
{
    void B();
}

interface IAB : IA, IB
{
    void A();
    void B();
}

class AB : IAB
{
    IA A;
    IB B;
    public AB(IA _a, IB _b)
    {
        A = _a;
        B = _b;
    }

    public void A()
    {
        throw new NotImplementedException();
    }

    public void B()
    {
        throw new NotImplementedException();
    }
}

我以为我可以使用AB类实例作为

  

IA A = new AB();或IB B =新AB();或IAB ab = new AB();

我无法理解这里发生的事情。请有人描述为什么会发生此异常。

1 个答案:

答案 0 :(得分:1)

将属性名称更改为A和B以外的其他名称,因为您具有相同名称的方法名称。在AB类中也有默认构造函数。

class AB : IAB
{
    IA instanceA;
    IB instanceB;
    public AB(IA _a, IB _b)
    {
        instanceA = _a;
        instanceB = _b;
    }

    public void A()
    {
        throw new NotImplementedException();
    }

    public void B()
    {
        throw new NotImplementedException();
    }
}