簡體   English   中英

c#接口,抽象類,強制繼承類不是抽象類

[英]c# interface, abstract class, force inherited class not abstract class

是否有繼承具有接口的基類來實現該接口的成員。

一些界面

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 
}

這沒有像我期望的那樣起作用。

通過將接口放在類上繼承基類來實現這一目的的唯一方法是什么?

例如

public class House : MyBase, ICanWork
{

}

任何有用的建議?

必須在該類中實現實現接口的接口,即使您的類是abstract 但是,您可以使該方法的實現也是abstract ,這會強制所有派生類實現它:

public abstract Class MyBase : ICanWork
{
     public abstract void DoSomething();
}

當您現在定義派生asbtract基類的類時,您還必須實現該方法:

public class House : MyBase
{
    public override void DoSomething() { ... }
}

來自MSDN

與非抽象類一樣,抽象類必須提供類的基類列表中列出的接口的所有成員的實現。 但是,允許抽象類將接口方法映射到抽象方法

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM