加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 00:06:16 所属栏目:百科 来源:网络整理
导读:我没有完全理解使用Interfaces,所以我不得不问:-) 我使用BaseClass,它实现了IBaseClass接口.这个接口只包含一个声明: public interface IBaseClass{ void Refresh ();} 所以我在我的Baseclass中实现了一个Refresh方法: public void Refresh () { Console.W
我没有完全理解使用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的答案是最佳选择.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读