如何使用抽象类需要后代类实现接口?

时间:2014-03-15 20:34:58

标签: c# interface abstract

我想创建一个抽象类,强制限制其子类必须实现接口。我想避免在抽象类中实现接口类。下面的代码不会做我想要的。有没有人建议我能做些什么?

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;
     }
}

3 个答案:

答案 0 :(得分:12)

只需在抽象类中创建方法abstract

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

    public abstract bool IsUsable();
}

在继承Item类的类中,使用override关键字:

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

VS可以通过右键单击父抽象类并选择Implement Abstract Class来自动添加覆盖实现存根:

enter image description here

答案 1 :(得分:0)

使用抽象方法和/或属性

在基类中实现接口

答案 2 :(得分:-1)

只需将abstract关键字添加到接口需要实现的每个方法/属性中。

例如,这就是DoSomething()方法的外观:

public abstract void DoSomething();

这样派生类就必须自己实现接口。