接口是使用 interface 关键字定义的。例如:interface IComparable { int CompareTo(object obj); } 接口描述可属于任何类或结构的一组相关行为。接口可由方法、属性、事件、索引器或这四种成员类型的任何组合构成。接口不能包含字段。接口成员一定是公共的。
类和结构可以像类继承基类或结构一样从接口继承,但有两个例外: 类或结构可继承多个接口。当类或结构继承接口时,它继承成员定义但不继承实现。例如:public class Minivan : Car, IComparable { public int CompareTo(object obj) { //implementation of CompareTo return 0; //if the Minivans are equal } }若要实现接口成员,类中的对应成员必须是公共的、非静态的,并且与接口成员具有相同的名称和签名。类的属性和索引器可以为接口上定义的属性或索引器定义额外的访问器。例如,接口可以声明一个带有 get 访问器的属性,而实现该接口的类可以声明同时带有 get 和 set 访问器的同一属性。但是,如果属性或索引器使用显式实现,则访问器必须匹配。接口和接口成员是抽象的;接口不提供默认实现。有关更多信息,请参见抽象类、密封类和类成员。IComparable 接口向对象的用户宣布该对象可以将自身与同一类型的其他对象进行比较,接口的用户不需要知道相关的实现方式。接口可以继承其他接口。类可以通过其继承的基类或接口多次继承某个接口。在这种情况下,如果将该接口声明为新类的一部分,则类只能实现该接口一次。如果没有将继承的接口声明为新类的一部分,其实现将由声明它的基类提供。基类可以使用虚拟成员实现接口成员;在这种情况下,继承接口的类可通过重写虚拟成员来更改接口行为。
{
int CompareTo(object obj);
}
接口描述可属于任何类或结构的一组相关行为。接口可由方法、属性、事件、索引器或这四种成员类型的任何组合构成。接口不能包含字段。接口成员一定是公共的。
{
public int CompareTo(object obj)
{
//implementation of CompareTo
return 0; //if the Minivans are equal
}
}若要实现接口成员,类中的对应成员必须是公共的、非静态的,并且与接口成员具有相同的名称和签名。类的属性和索引器可以为接口上定义的属性或索引器定义额外的访问器。例如,接口可以声明一个带有 get 访问器的属性,而实现该接口的类可以声明同时带有 get 和 set 访问器的同一属性。但是,如果属性或索引器使用显式实现,则访问器必须匹配。接口和接口成员是抽象的;接口不提供默认实现。有关更多信息,请参见抽象类、密封类和类成员。IComparable 接口向对象的用户宣布该对象可以将自身与同一类型的其他对象进行比较,接口的用户不需要知道相关的实现方式。接口可以继承其他接口。类可以通过其继承的基类或接口多次继承某个接口。在这种情况下,如果将该接口声明为新类的一部分,则类只能实现该接口一次。如果没有将继承的接口声明为新类的一部分,其实现将由声明它的基类提供。基类可以使用虚拟成员实现接口成员;在这种情况下,继承接口的类可通过重写虚拟成员来更改接口行为。
货车 轿车 跑车 都属于汽车
有个共性就是都能坐人,也可以说只要一个对象实现了“坐人”这个接口
这一组对象就有了相同的地方,或者说是契约
比如:
interface 坐人
{
void 上车();
void 下车();
}class 自行车:坐人
{
public void 上车()
{
//上车
}
public void 下车()
{
//下车
}
}
一个USB"接口"可以接很多牌子的USB