C# 无法理解接口继承
下面的代码告诉我一个错误 错误2类型“Series.AB”已包含“B”的定义 我想我可以使用AB类实例作为 IA A=新的AB();或IB B=新的AB();或IAB ab=新ab()C# 无法理解接口继承,c#,C#,下面的代码告诉我一个错误 错误2类型“Series.AB”已包含“B”的定义 我想我可以使用AB类实例作为 IA A=新的AB();或IB B=新的AB();或IAB ab=新ab() 我无法理解这里发生了什么。请描述发生此异常的原因 将属性名称更改为A和B以外的名称,因为方法名称具有相同的名称。在AB类中也有默认构造函数 class AB : IAB { IA instanceA; IB instanceB; public AB(IA _a, IB _b) {
我无法理解这里发生了什么。请描述发生此异常的原因 将属性名称更改为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();
}
}
可能重复:此错误与接口和继承实际上无关。您有一个同名的方法和字段
B
是字段和方法的名称(a也是如此)。这是不允许的。我找到的最接近的副本:。在这两个问题中,OP认为这是另外一个问题。接口IA的可能副本是指向的,并且只能引用一个()方法,类似于IB B()方法。因此,IAB 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();
}
}