派生类可以对基类中已经定义的成员方法进行重载。类似的概念引入到类对接口的实现中来,叫做接口的重实现(re-implementation)。继承了C#接口实现的类可以对接口进行重实现。这个接口要求是在类定义的基类列表中出现过的。对接口的重实现也必须严格地遵守***实现接口的规则,派生的接口映射不会对为接口的重实现所建立的接口映射产生任何影响。
下面的代码给出了C#接口重实现的例子:
实际上就是:Control把IControl.Paint映射到了Control.IControl.Paint上,但这并不影响在MyControl中的重实现。在MyControl中的重实现中,IControl.Paint被映射到MyControl.Paint 之上。
在C#接口重实现时,继承而来的公有成员定义和继承而来的显式接口成员的定义参与到接口映射的过程。
这里,接口IMethods在Derived中的实现把接口方法映射到了Derived.F,
Base.IMethods.G, Derived.IMethods.H, 还有Base.I。前面我们说过,类在实现一个接口时,同时隐式地实现了该接口的所有父接口。同样,类在重实现一个C#接口时同时,隐式地重实现了该接口的所有父接口。
这里,对IDerived的重实现也同样实现了对IBase的重实现,把IBase.F 映射到了D.F。对于C#接口重实现的实现就先介绍到这里。
【编辑推荐】