编程语言
首页 > 编程语言> > c# – 重新实现继承的接口方法

c# – 重新实现继承的接口方法

作者:互联网

我没有完全理解使用Interfaces,所以我不得不问:-)

我使用BaseClass,它实现了IBaseClass接口.这个接口只包含一个声明:

public interface IBaseClass
{
    void Refresh ();
}

所以我在我的Baseclass中实现了一个Refresh方法:

    public void Refresh ()
    {
        Console.WriteLine("Refresh");
    }

现在我想使用从这些Baseclass扩展的一些类并实现IBaseClass接口:

    public class ChildClass : BaseClass,IBaseClass
    {
    }

但是在我的BaseClass中实现“刷新”的原因我不必再次实现该方法.我应该怎么做,强制实施“刷新”到BaseClass的所有子项以及子类的所有子类.

谢谢kooki

解决方法:

您不能强制派生类以您指定的方式重新实现该方法.你有三个选择:

>不要在基类中定义刷新.该接口将强制子类实现它.
>如果接口的唯一目的是强制实现并将基类声明为抽象和刷新,则避免接口,为此您不会给出实现.
>将基类中的刷新定义为虚拟.这允许覆盖但不会强制它们.这就是ToString()的工作原理.

这是假设您的基类大于单个方法.如果您的代码确实是您发布的,那么Oded的答案是最佳选择.

标签:c,inheritance,interface,extending
来源: https://codeday.me/bug/20190715/1469012.html