接口:定义一个协定。实现某接口的类或结构必须遵守该接口定义的协定。
接口只指定实现该接口的类或结构必须提供的成员:注意 接口对实现该接口的类或结构的派生类并无影响,如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() {...}
}