接口映射

接口:定义一个协定。实现某接口的类或结构必须遵守该接口定义的协定。

接口只指定实现该接口的类或结构必须提供的成员:注意 接口对实现该接口的类或结构的派生类并无影响,如4。

1、接口映射:查找 类或者结构 的基类列表中指定的每个接口的每个成员的实现

2、映射顺序:从当前类开始,逐个检查它的每个后续基类是否有匹配的实现;显式接口成员实现优先级高于其他成员

对于

3、类或结构实现两个或更多个接口而这些接口包含具有相同名称、类型和参数类型的成员则这些接口成员可以全部映射到单个类或结构成员上。例如

interface IControl
{
    void Paint();
}

interface IForm
{
    void Paint();
}

class Page: IControl, IForm
{
    public void Paint() {...}
}

IControl IForm Paint 方法都映射到 Page 中的 Paint 方法

4、类继承中改写

interface IControl
{
    void Paint();
}

class Control: IControl              
{
    public virtual void Paint() {...}//必须加virtual,其派生类,才能改写paint:说明接口与虚函数是两个不同的概念,

//因为如果不声明virtual,TextBox不能重写改方法
}

class TextBox: Control
{
    public override void Paint() {...}
}

原文地址:https://www.cnblogs.com/YangYu/p/1514107.html