接口是用来定义规范的,可以降低程序模块间的藕合度。
接口中可以包含方法、事件、属性、索引,不能包含字段和常量和委托。
如下:
interface Iface
{
//方法
int GetName(string strName);
//重载上面方法
string GetName(int intAge);
//属性
int tGetName
{
get;
set;
}
//索引
int this[string strName]
{
set;
}
//事件
event EventHandler OnTell;
}
不能使用public、static、virtual等修饰接口成员,接口成员默认就是public。
接口内方法可以重载如上。方法在实现类中实现时可以是virtual的,可以在派生类中被重写。
接口中默认的方法访问修饰符是public,有返回类型和参数,无方法体,即没有大括号及其内部所有内容。
实现接口中方法要保证以下四点完全相同:
访问修饰符(public),返回类型,参数类型,参数个数,但在常规实现(即方法名前不含接口名的实现形式如public string GetName(){})中的方法可以是virtual方法,以便在实现类的派生类中能够重写。在显式实现(即方法名前含接口名的实现形式如string ISHow.GetName(){})中除了返回类型和参数外,其它修饰符都不能有。