C# 接口定义
C# 不支持多重继承,但是客观世界又有多重继承的需要,因此, c# 提出了接口的概念。通过接口可以实现多重继承的功能。
实现接口的类或结构要与接口的定义严格一致,接口描述可属于任何类或结构的一组相关, 接口可由方法、属性、事件、索引器或这 4 种成员类型的任何组合构成
索引器是一种特殊的类成员,它能够让对象以类似数组的方式来存取,使程序看起来更为直观,更容易编写。
类和结构可以像类继承基类或结构一样从接口继承,而且可以继承多个接口。当类或结构继承接口时,它继承成员定义但不继承实现。若要实现接口成员,类中的对应成员必须是公共的、非静态的,并且与接口成员具有相同的名称和签名。类的属性和索引器可以为接口上定义的属性或索引器定义额外的访问器。例如,接口可以声明一个带有 get 访问器的属性,而实现该接口的类可以声明同时带有 get 和 set 访问器的同一属性。但是,如果属性或索引器使用显式实现,则访问器必须匹配。
接口可以继承其他接口。类可以通过其继承的基类或接口多次继承某个接口。在这种情况下,如果将该接口声明为新类的一部分,则类只能实现该接口一次。如果没有将继承的接口声明为新类的一部分,其实现将由声明它的基类提供。基类可以使用虚拟成员实现接口成员,在这种情况下,继承接口的类可通过重写虚拟成员来更改接口行为。
定义接口
接口的声明采用下列格式:
|
其中,除 interface 和接口名称,其他的都是可选项,下面是一个 C# 接口定义的例子,代码如下:
|
接口继承
一个接口可以从一个或多个基接口继承。例如: