Sea*_*kit 2 .net c# oop inheritance interface
是否有继承具有接口的基类来实现该接口的成员.
一些界面
public interface ICanWork
{
void DoSomething();
}
Run Code Online (Sandbox Code Playgroud)
一些抽象的课
public abstract Class MyBase : ICanWork
{
// I do not want to implement the ICanWork but instead want the derived class which inherit it
}
Run Code Online (Sandbox Code Playgroud)
我继承基类的类
public class House : MyBase
{
// i want the compiler to know that it needs to implement ICanWork
}
Run Code Online (Sandbox Code Playgroud)
这没有像我期望的那样起作用.
通过将接口放在类上继承基类来实现这一目的的唯一方法是什么?
例如
public class House : MyBase, ICanWork
{
}
Run Code Online (Sandbox Code Playgroud)
任何有用的建议?
您必须在该类中实现实现您的接口的接口,即使您的类是abstract
.但是,您也可以使该方法的实现abstract
强制所有派生类实现它:
public abstract Class MyBase : ICanWork
{
public abstract void DoSomething();
}
Run Code Online (Sandbox Code Playgroud)
当您现在定义派生asbtract基类的类时,您还必须实现该方法:
public class House : MyBase
{
public override void DoSomething() { ... }
}
Run Code Online (Sandbox Code Playgroud)
来自MSDN:
与非抽象类一样,抽象类必须提供类的基类列表中列出的接口的所有成员的实现.但是,允许抽象类将接口方法映射到抽象方法