[音乐]
在这个例子中里面我们来示例一下接口 那么所谓接口是一组协定
也就是说凡是实现了这样的一个接口的类必须要接
遵守这样的一个接口定义的这样的一个协议或者协定
那么,我们具体来看一下一个接口应该怎么样做以及
它是如何做的 我们重新启动一下我们的这个 visual
studio 新建项目,创建一个空排的应用程序,我们是
我们的这个第二十八个例子
[无声]
[无声]
那么在这样的一个
接口的定义里面所有的接口怎么样呢,所有的接口 那么跟前面一样它有一个这样的一个类型修饰符
public 当然了这个 public 也可以是这样的一个 protected internal 或者
private 这样的一个修饰符
那么还可以是这样的一个 new 修饰符,它是用在嵌套的这样的一个接口定义里面
说明隐藏了一个继承的这样的一个成员,跟这个 new 的那个
呃,继承的这个方法是一样的一个用法 一般来讲我们会把接口申明成一个
public,然后那么关键字是 interface 不再会是这样的一个 class,将是一个
interface 那句子后面是接口的名字,一般来讲,接口的名字可以根据自己的喜好随便的命名
那么,我们通常作为一个约定,我们一般会把 接口的这样的一个名字怎么样呢,用这样的一个 大写的 I
开头来表示它是一个接口 那么接口也可以继承,也可以继承,如果接口可以从另一个接口继承
如果它需要有继承的这样的一个基类的话
那么可以后面打这样的一个冒号,那么如果没有的话,那么 就是一个接口。
在接口里面我们可以定义四种东西,分别是 一个方法,一个属性
一个视界,或者是一个索引器 那么视界跟索引器我们会在后面的课程里面学到
而方法跟这样的一个属性,我们会看到我们前面已经用了很多了 那么在接口里面可以申明多个成员
成员包括从这样的一个 呃,基类、
基类继承的这样的成员以及自己申明来的成员等等都可以申明 也可以没有成员。
那对于这样的一个接口来说,默认的 所有接口里面的成员都是
public,并且不能够更改 所以在接口的所有的成员申明前面没有
这样的一个修饰符,那么也因此,它也就不能够用什么 watcher 呀
什么呀 protected 呀 什么什么之类的修饰,譬如像我们在这个接口里面申明一个
void 这样的一个 我们简单的申明这样的一个
这样的一个函数方法。
那么 所有接口的方法有点类似于那个抽象的 abstract
那样的一个方法 所有接口的方法都没有具体的代码
就是说它接口只是定义了一个协议,一个方法
有这么一个方法,但是这个方法怎么样呢,不是由接口来实现的
而是由继承接口的类,它们才能够必须去 实现的。
那么也就是说一个接口只需要定义我这接口里面 有多少种方法有多少个属性就可以了,不需要给出任何这样的一个
实现的代码,也不能够给出的这样的一个任何实现的代码 那么一个接口,一个接口
也怎么样呢,也可以怎么样呢,也可以从另一个接口 继承,譬如讲接口
B 可以从什么呢,可以从接口 接口
A 下面继承,然后继承了之后,当然一样的也会继承什么呢
继承上一个接口里面的所有的 东西。
但是对于接口来说,因为没有 watcher 这样的一个关键字,也没有 abstract
什么的关键字 所以它也不存在着一个什么这样的一个层面描述的一个多态的这样的一个问题
那么,对于接口来说,如果一个类 如果一个类要从某一个接口继承的话
那么它们必须实现这个接口所包含的全部的
定义的这些方法的具体实践才能够正确的从这样的一个接口继承
那么也就是说,我如果要,我如果现在有一个
public,我如果现在有一个 class
有一个 class AA,那么它要从这样的一个
接口,从它从这样的一个接口 从接口
B 继承的话,那么由于接口 B
又是从 A 继承的,它里面含有怎么样呢,含有这样的两个这样的一个 public
的这样的一个函数 所以,所以怎么样呢,所以在 class
A 里面 至少怎么样呢,至少它必须要实现
必须要实现什么呢,必须要实现这两个接口显示的这样的函数
display
必须要这样怎么样呢,实现这两个函数才能要行
否则怎么样呢,否则这样的一个 这样的一个的继承就是失败的
那当然现在还不行,还得再来一个
只有
只有你把两个这样的一个方法都给出了具体的实现代码了之后 才能够从这样的一个接口怎么样呢,继承
才能 够正确的通过编译。
这道、 这个题就是现在就是可以通过编译的,没有什么问题
那么,接口对于我们来说 主要是定义了一组规范。
如果一个类申明它是从某一个接口 譬如像我有一个 document
类,我是从 IDocument 这个接口 派生的,就表示我遵循了所有
IDocument 类里面 定义的规范,具有 IDocument
这个接口定义的所有的功能可以来进行使用 那么这是接口的一个主要的一个作用。
那么接口还有一个 作用就是在 C# 里面我们的继承只允许单继承
就是只能有一个父亲,那么对于接口 来说,那么你可以是有多个、
从多个接口来继承的 也就是说它可以间接的实现或者这样的一个模拟一下这个
面向对象里面多继承的这样的一个状况 需要从多个接口继承的话,那就把后面的接口怎么样呢
分别用这样的一个逗号隔开,写上多个接口就可以了 这是一个多继承的多继承的例子。
当然我这样写不太合适 因为 B 本身就是从 A 继承的,所以说完全不需要再有
A 了 你可以再从一个接口 C 上面
进行多继承,这么也就是说对于多继承来说,那么 class
就要实现 同时实现这两个接口里面所有的
这样的一个申明的所有的这样的一个方法 那么在接口里面也可以是属性,也可以是这样的一些东西
那么 还有可以是实践,那么都是可以作为这样的接口里面规定的东西
那么对于接口,我们就做这样的一个简单的这样的一个讨论