是否有继承基类的成员,该基类具有实现该接口的接口。
一些界面
public interface ICanWork
{
void DoSomething();
}
一些抽象类
public abstract Class MyBase : ICanWork
{
// I do not want to implement the ICanWork but instead want the derived class which inherit it
}
我继承基类的类
public class House : MyBase
{
// i want the compiler to know that it needs to implement ICanWork
}
这不像我期望的那样有效。
通过将接口放在类上继承基类来实现这一目的的唯一方法是什么?
e.g。
public class House : MyBase, ICanWork
{
}
有用的建议吗?
答案 0 :(得分:8)
你有在该类中实现实现接口的接口,即使你的类是abstract
。但是,您也可以使用abstract
实现该方法,这会强制所有派生类实现它:
public abstract Class MyBase : ICanWork
{
public abstract void DoSomething();
}
当您现在定义派生asbtract基类的类时,您还必须实现该方法:
public class House : MyBase
{
public override void DoSomething() { ... }
}
来自MSDN:
与非抽象类一样,抽象类必须提供 实现了所列接口的所有成员 类的基类列表。但是,抽象类是 允许将接口方法映射到抽象方法