00:00
大家好,我是海波老师,接下来我们来讲一讲Java面向对象语法中的接口啊,我们这里呢,来拷贝一下,来复制,复制以后我们改成叫22。好了,把这个呢,我们去掉,去掉以后我点击OK啊,然后呢,把里面的东西啊,咱们全给它去掉就可以了,那这个下面呢,咱们也都去掉啊,全去掉。然后呢,我们这里写上啊,我们的接口啊,我们接下来给大家讲一下接口的概念,那什么是接口呢?这个概念是很难解释清楚的,但是我一举例子呢,你们又能明白,比如咱们手机上的耳机接口,充电器接口,电脑上的USB接口,这不都是接口吗?它都叫接口,但是你说你怎么定义它呢?不太容易吧,可是你会发现这个接口太重要了,为什么?因为假设手机没电了,那么只要接口统一,我们是不是可以随便找一个符合这个接口的充电器就能充电啊,对不对?如果你要是不统一的话,必须要找到厂家特定的充电器才能充电对不对?你看那个充电宝上是不是就会准备好几根线呢?为什么?说好听点就是为了满足差异化的这个用户需求,那不好听呢,就是因为不同的手机的充电接口它不一样,对不对?你想想如果一样了会怎么样。
01:11
对吧?不就一根线就可以了吗?还有啊,就是电脑上的USB接口,是不是只要你的电子设备的接口符合USB接口的标准,都可以和电脑进行对接使用啊?你会发现现在对接电脑的东西真是越来越多了,对吗?小到一个电动游戏机、手机,大到什么风扇啊,台灯啊,小箱啊,什么无人机等等,是不是都可以跟电脑对接啊,为什么?究其原因,不就是接口的标准相同吗?但是大家想一想,USB接口最早设计的时候,它会考虑到以后和这么多的电子设备对接使用吗?不可能吧,它其实只是设计了一个数据传输和供电的标准规范,然后呢,按照这个标准和规范制定了数据的提供者和数据使用者的规则,那么如果你想要使用数据的话,只要符合相应的规则就可以了,具体怎么使用那是你的问题,对吗?所以有的时候啊,我们把接口理解为一种规则也是可以的,所以我们写上所谓的接口,它可以简单理解为规则。
02:16
对吧,只要你符合这个规则,大家就可以一块去用嘛,对不对,规则我们定义好就行了,好了,接口的概念给大家稍微的解释一下,那么接下来我们来说一下Java中接口的具体语法,那么在Java中啊,接口它采用的是interface关键字来声明的,所以我们说一下咱们叫基本语法,这个语法呢是这样的,叫做interface。咱们之前啊,不都是叫class吗?那么现在呢,不叫class了,叫interface,然后后面呢,跟着我们的接口名称,这个接口名称啊,它其实也是标识符,遵循我们标识符的命名规则就可以了,然后呢,写上一个大括号,大括号里面我们就有规则属性以及规则的行为。
03:00
诶,就是这样的,这个就是我们最基本的语法了,那咱们刚才讲过了接口啊,它只是一个规范和规则,它并没有强迫你必须怎么做,所以这里的行为是无法具体化的,也就是说我们所谓的这个接口啊,其实是抽象的,咱们说一下接口它其实是抽象。而规则呀和规范中的这个东西啊,必须是具体的,就是说这个规则中的属性必须是具体的,比如啊,咱们说上班不迟到,那怎么叫不迟到呢?九点钟前到公司就叫不迟到,那么这个九点呢,就是具体的值,这个如果都没有的话,那我怎么知道什么时间叫不迟到呢,对不对,而且这个值一旦定义好之后是不能修改的,他且和啊具体的某个对象没有关系,他可不能是生活中的什么张三不能迟到,然后李四能迟到,如果都不遵循这个规则,是不是就没有指定规则的意义了呢?所以我们这里的属性,包括咱们的这个行为方法呢,他们的访问权限应该都是大家都能用,就是公共的,所以呢,我们这里说一下我们首先规则的属性。
04:05
它必须为固定值。而且它不能修改对吧,这个咱们是需要知道的,还有我们的这个属性和行为,它的访问权限。必须为公共的。为什么要必须为公共的呀,因为大家都要能够看得到啊,你不能说这个规定只给某些人使用,别人不用对不对,那不行,你必须大家都能够看得到,对吧?哎,就是这样,还有一个呢,就是我们的属性啊,它应该是静态的。什么意思啊,你不能说某些对象遵循这个规则,某些对象不遵循这个规则没有道理吧,也就是说我们这个规则跟某一个具体的对象无关,那是不是就应该跟类型相关了,对不对?所以啊,我们属性应该是什么,静态的,跟某个对象没有关系,而且呢,咱们这里的行为。他应该是抽象的。为什么呀?因为我们需要由每一个对象自己决定他该如何去做,对吧?我们只告诉你,不知道,那么每一个对象自己来决定,我到底是八点半来呀,还是08:50来呀,还是我们08:25就来了呀,你们自行决定,那就不能统一了吧,对不对?所以他应该是抽象的,由每一个具体的对象把它补充完整,诶,就是这个意思啊,那么行为应该是抽象的,所以咱们前面说了,接口是抽象的,那么也就意味着它根本就构建不了对象,你想想吧,一个接口怎么定义对象呢?根本就无法构建对象,对不对?它只是定义了标准和规则,是对象就要符合这个规则,而不是对象重属于这个规则。所以啊,咱们Java中的接口和类呢,其实是两个层面上的东西,所以咱们说一下我们的接口和类,它是。
05:46
两个层面上的东西。啊,不一样,你的类呢,可以构建对象,我的接口跟对象都没有关系,它只是需要让对象遵从这个规则,对不对?虽然不是一个层面上的东西呢,但是接口可以继承其他的接口啊,那么我们的类呢,它要遵循接口,所以我们类的对象它需要遵循接口。
06:10
那么在Java中。这个遵循我们称之为叫实现。也就是说,我们的类需要实现接口,而且可以实现多个接口。诶,就是这个意思啊,好了,我们说了一大堆了,我们这里呢,给大家来演示一下啊,其实我们为什么说这一大堆呢?就是因为它跟类的区别还是很多的啊好了,我们来给大家演示一下我们的例子,那咱们前面不是举个例子嘛,叫USB嘛,那么我们这里呢,就给大家来演示USB的例子,接下来呢,我们写上一个叫做interface,然后呢,叫USB啊interface。好了,写完了以后,大家会发现我这样的话就定义了一个接口,但是你要记住啊,你的USB呢,它要有一个提供USB接口和一个使用USB接口的一个概念吧,好了,那接下来呢,我们再写一个interface,然后呢,我叫USB,我叫supply,诶好了,这个呢,是提供USB服务的,对吧?那这里呢,我们给他一个方法,咱们叫public,然后写成一个void,然后呢,我们叫power啊,我们的supply提供我们的能量,提供咱们的电源呢,诶,所以咱们这么写就可以了,大家有没有发现我这其实是一个抽象的,为什么抽象啊,因为我们的符合USB的规范的这些电子设备啊,他们提供电源的方式可能不一样吧,所以它就是个抽象的,它要具体的去实现,所以我们这就不用写了,那好,你能提供咱们当前的power,那你还得去接收这个power吧,所以我的interface,然后写上叫USB,我们叫什么呢?我们叫receive。
07:42
好了,那这么写的话,这就意味着我们当前来接收我们USB的信息啊,所以我们写上叫public,然后avoid,那么你叫做supply,我这里呢就叫receive,所以拷贝,拷贝以后把这个放过来,诶你这样的话不就可以了吗?一个用来提供我的能量,一个来接收我的能量,他们都应该符合我USB的规范,所以这三个接口当中,我们USB的规范我们应该给它继承一下来翻过来,我们这儿也继承一下,我不管你提供还是接收,你要符合我USB的规范,我这个里面什么都不写,但是我这边写了他们所提供的行为功能,对吧,我们这里给他写了相应的规则了,好了,那么写完以后,那么我们就想想吧。
08:25
我们的电脑不就符合了USB的规范吗?所以我就写上它叫class,我叫computer。好,然后呢,记住我实现了这个规范,我们就是,诶它就可以了,我们有个叫employment,这个employment咱们就称之为叫实现,所以放过来就是它,那你实现什么了呢?我可以对外提供电源呀,所以把这个USB,这个supply我们拿过来,你拿过来以后,那这个方法你就要实现了,你要告诉别人我怎么来提供电源对不对,所以拷贝,拷贝以后你放过来把它补充完整,同学们记住了,我们接口中的行为是抽象的,咱们前面说了行为是抽象的,那么我们的类实现了这个接口就要告诉我到底怎么实现这个方法,那好了,我就写上它来。
09:12
电脑,它提供能源。对吧,我这么写就可以了,好了,那你这么写完了以后,那我现在要知道啊,电脑中还会有很多的USB接口啊,所以这个接口就得让别人来用啊,所以我写上一个public,那么好,我这里写上它叫USB的receive,然后呢写上一个USB。然后写个一,好了,我再写上一个二,什么意思?电脑中都有很多的接口啊,对不对,可以让别人插进来呀,这个就是把别人插进来,而我这个是对外提供能源的,没错吧,同学们,就是这个道理,好了,如果你能明白这个的话,同学们,那我们就来写上一下了,什么呢?我们往这边叫USB一点,我们的power receive,让我的这个设备呢来接收我们的能源,同样道理,让我的USB来接收能源,这样的话,我们的电脑当中就有两个接口了。
10:03
你有两个接口的话,那现在我得往里面接东西啊,好,我买了个小台灯啊,我买了个小台灯,我就写上它咱们叫做light,好,那么这个小台灯呢,它就有USB接口啊,所以它就要符合我们的规范了,什么规范你要能接收能源呢?好了,你这么写,写完了以后,你就得告诉别人,你收到能源以后,你该怎么办嘛,所以我们拷贝一下,拷贝以后大家会发现我在当前的这个地方,诶,重写我们的方法,重写方法以后,我们来拷贝一下,来写上它,我们叫做电灯啊。来咱们就接收,诶,咱们的能源你这么写不就完事了吗?所以现在电灯有了,电脑有了,你只要把具体的对象给我构建出来不就可以了吗?所以咱们来写上它,我们叫做computer a computer等于C等于我们的new,然后呢,我们就叫computer,诶写上就可以了,写完了以后,然后呢,同学们记住了,我再来个小电灯,对吧?我写上一个小电灯等于new,我们的light,写完了之后,你要把这个电灯干嘛呀,插到我们的电脑上面去吧,所以c.USB1它等于我们的light。
11:16
同学们,你这么写完了以后,是不是就意味着我们当前把电灯插入到USB口上去了,对不对,那这样的话,我的电脑呢,就可以给他提供能源了呀,所以C点我们的power supply你这么写,那好了,同学们,我们现在呢,是第一个电灯对吧?那现在我们再来给他拷贝我们的两个电灯,诶放过来,我们这里再写个一,我们这里写上一个一就行了,我写上一个二什么意思啊?我们的这个台灯呢,我们插入到我们USB当中第一个口,我们的这个台灯呢,我们插入到USB的第二个口,对吧?那这样的话,我们的电脑就给他们两个电灯来提供能源了,所以我就运行一下,运行以后看结果,你会发现我们当前电脑提供能源,而我们的两个电灯不就接收能源吗?对不对,你看这个不就跟生活当中的感觉是一样的吗?所以这就是我们接口它的意义了。好了,同学们,我们接口的基本语法和基本使用,咱们就先说到这里。
我来说两句