我需要使用继承接口,但遇到了问题。我将在下面的示例中解释我的问题。假设我有接口IFlyable
:
public interface IFlyable
{
IVerticalSpeed Speed { get; set; }
}
它包含了IVerticalSpeed
接口。我创建了另一个接口叫做ISpeed
,它继承自IVerticalSpeed
接口:
public interface ISpeed : IVerticalSpeed
{
int MaxSpeed { get; set; }
}
在下一步中,我创建了一个类
Fly
,该类实现了IFlyable
接口:public class Fly : IFlyable
{
public IVerticalSpeed Speed { get; set; }
}
一切都很好...但是如果我想要将IVerticalSpeed
接口替换为继承自IVerticalSpeed
接口的ISpeed
接口怎么办?
public class Fly : IFlyable
{
public ISpeed Speed { get; set; }
}
我认为一切都应该没问题,因为我的
ISpeed
接口是IVertialSpeed
接口加上任何ISpeed
接口所包含的内容。但是这不是正确的。我收到了一个错误,说:“Fly未实现接口成员IFlyable.Speed(...)。为什么?
interface IVerticalSpeed {}
就足够了。 - H HFly
不再实现IVerticalSpeed
作为属性,这是由“IFlyable”表示的。 - Seabizkit