繁体   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