簡體   English   中英

如何使用抽象類需要后代類實現接口?

[英]How to have an abstract class require an interface to be implemented by descendant classes?

我想創建一個抽象類,強制限制其子類必須實現一個接口。 我想避免在抽象類中實現接口類。 下面的代碼不會做我想要的。 有沒有人建議我能做什么?

public interface IItem()
{
     bool IsUsable();
}

public abstract class Item : IItem
{
    MemberVar var;
    public void DoSomething()
    {
        //Do something
    }
}

public class Something : Item
{
     public bool IsUsable()
     {
         return true;
     }
}

只要使該方法abstract在抽象類:

public abstract class Item : IItem
{
    //...

    public abstract bool IsUsable();
}

在繼承Item類的類中,使用override關鍵字:

public override bool IsUsable()
{
    // Do stuff
}

VS可以通過右鍵單擊父抽象類並選擇Implement Abstract Class來自動添加覆蓋實現存根:

在此輸入圖像描述

使用抽象方法和/或屬性實現基類中的接口

只需將abstract關鍵字添加到接口需要實現的每個方法/屬性中。

例如,這就是DoSomething()方法的外觀:

public abstract void DoSomething();

這樣派生類就必須自己實現接口。

暫無
暫無

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

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