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