一个类继承了它的基类提供的所有接口的实现。
如果不显式地重新实现接口,派生类就无法改变从基类中继承来的接口映射。
using System;
interface IControl
{
void Paint();
}
class Control:IControl
{
public void Paint() { Console.WriteLine("Control invoke!"); }
}
class TextBox:Control
{
new public void Paint() { Console.WriteLine("TextBox invoke!"); }
}
class Invoke
{
public static void Main()
{
Control c = new Control();
TextBox t = new TextBox();
IControl ic = c;
IControl it = t;
c.Paint(); // invokes Control.Paint();
t.Paint(); // invokes TextBox.Paint();
ic.Paint(); // invokes Control.Paint();
it.Paint(); // invokes Control.Paint();
}
}
但是, 当一个interface方法被映射到类中的一个虚方法时,派生类就可以重载这个虚方法,并且改变这个接口的实现。