00:00
接下来的话呢,我们要再讲,这就涉及到另外一个结构叫做接口,刚才呢,咱们这个抽象类呢,就翻篇了接口,接口呢大家可以看作是一个关键字的使用,又是呢,咱们讲的这个面向对象三条主线里边的第三条主线就是一个叫接口关键字的使用,好我们看下边的一个简单介绍,有这样的一个一段文字看一看,说一方面呢,有时必须从几个类中派生出一个子类,从几个类中派生出一个子类,那就似乎呢,让这个子类要集成好几个负类了,但是呢,咱们这个Java是不支持多继承的。这个C加加呢,这是这种多继承,Java呢,这个单继承性的话呢,嗯,有好处,好处呢就是代码呢,看着就更规范一些,更干净一些,不容易这个乱,当然坏处的话呢,就是我们只能继承一个副类了,那就没有人家这个多继能,这个功能扩展的快,那怎么办呢?我们就提出来一个结构叫做接口,通过接口的话呢,我们可以达到一个多重继承的效果,因为接口当中它不同于类了,这里边就提到这个接口和类呢是一个并列关系的。
01:07
我们看这API,大家打开这个API的话呢,比如说我们就看这个浪包,这是咱们比较常用的一个语言的包,打开以后上面这块呢,叫interface。就是对,就是我们说的这个接口,然后再往下走,这块呢叫class,这是class的一个描述,这人也是接口接口的描述,那通过这呢,你也能很明显的看出来,这个接口和类是两个并列的结构,我们在这个类这块呢,呃,在类这块呢讲叫单继承的,但是呢,这个接口这块接口呢,我们回头也是让类去实叫这不叫继承啊,叫实现接口,一个类呢可以实现多个接口,那通过这样的方式呢,我们实现让这个Java里边这个功能有多重的一个效果了,就一定程度上呢,解决了我们类的单机成性的这种局限性,这是我们提到这个接口它的一个作用啊,说另一方面呢,有时必须从几个类中抽取出一些共同的行为特征,而它们之间呢,又没有意思A的关系。
02:12
咱们前面讲这个继承性的时候,说的是子父类的关系,这个时候呢,咱们把这个官员也好,农民也好,他们说话这样的这个功能呢,抽取成父类里了,那这呢,抽取成父类呢,我们说这个官员是人的子类,我们其实可以理解成就官员ISA person就是是一类人,咱们前面说这个继承关系呢,大家可以用说谁意思A谁这样的一种关系呢,去衡量一个继承性的一种关系,这呢就是子类,这呢就是父类。啊,这叫E,则衡量的是子父类的关系,但是现在的话呢,我们抽取这个功能以后呢,抽取出来的这个呢,彼此之间是不是叫EA的关系了,也就是说不是继承的关系,仅仅呢,是具有相同的行为特征而已。
03:00
比如说呢,鼠标键盘这个打印机,扫描仪,摄像头等等等等等,这些呢,他们都支持USB连接,这个USB的话呢,它里边就定义了一些相关的一些功能,比如数据该怎么去传输啊,怎么去终止啊,怎么去关闭啊等等,这些设备的话呢,都是通过USB这样的一个方式呢,进行数据的一个传输和操作的,那我们把USB呢,就是可以定义成一个具有相关功能的这个特征封装起来,但封装起来以后呢,这时候我们让它作为一个类出现呢,不是太合适,不是太合适,你不能说这个MP3手机他们都is a USB。说它是一个USB,那不对,只能说它具有USB这些功能。那么怎么去描述这种非一则的关系?那又提到了我们用接口。哎,稍微还是有点抽象,大家可以看这,我这呢有两组图,这个篮球运动员和跨栏运动员,他们的副类呢,都是运动员,这个呢描述的是意思,呃的关系。
04:03
这个大学生中学生都是学生,这也是子父类的关系,我们用实线来表示,那么这个虚线呢,咱们表达的就是类和接口之间的一种关系,我们呢把比如说这个运动员和学生这块都有学习的技能啊,尤其像这些运动员,这些运动员呢,你想这个比如说拿到一个省级的一个冠军等等,你可能有些这个所谓的一些天赋,或者你后期后期再努力努力是吧,这都可以达到的,但是你要想成为世界顶级的这种运动员,这个有的人叫叫什么商。有情商,有这个智商,还有个叫叫什么商是吧,比如打球的叫球商啊,就是嗯,你的这种自我修复能力,调节能力,这个其实也很重要的,就是像那些运动员的话呢,顶级的运动员他们学习能力也得是超强的,那这时候呢,我们说这些运动员也好,和大学生也好,他们都具有学习的技能,那我就把这个技能呢封装起来,封装起来的话呢,我就不能让他是副类了,你要是副类的话呢,首先我们这个运动员和大学生都已经有自己的负类了,单继能性你也不可能再去继承它了,这是一方面,另外一方面呢,我们这个技能呢,你说运动员is a这种技能也不太合适。
05:17
只能说呢,我们具有这种功能,但是它俩之间呢,不能本身也不能是子符类的关系,那这时候呢,我们Java里边怎么去衡量这种关系呢?咱们把这个呢,封装到一个接口的概念中,然后让这个类呢去实现这个接口,那实现接口效果呢,跟这个继承父类有点像,就是接口中你定义的那些功能呢,它也就有了,那就是说实现接口以后,接口中生命的这个功能,我们这个这个这个时候不叫子类了,你实现那个接口了,我们这就叫做实现类了,哎就也获取到了,好再一个例子呢,是这样的。这呢有飞机,子弹,风筝,热气球,这呢是几个不同的事物了,这些事物的话呢,像这四个都具有一个飞的功能,飞的功能我这呢就把这个可以飞定义成一个接口,然后这几个结构呢,A都实现这个接口,就意味着他们具有了这样的飞的功能,那攻击性子弹呢,具有攻击性,我们呢,可以让这个子弹呢去实现这个攻击性这个接口,而且你会发现我这个子弹呢竟然是有两个叉。
06:22
就是我既实现了可以非又实现了攻击性这样的一个接口,那其实就说明这个在Java当中,这个类啊,是可以实现多个接口的啊,副类呢只能有一个,哎,我们这个接口的话呢,你可以实现多个,这就是你功能的拓展性就非常强了,诶打破了我们说单集程局限性,这个一定程度上我们通过接口这块呢,进行了一个补充,哎,就这样的一个情况啊,好,这呢就是咱们所谓的这个接口的一个描述,下边呢,还提到说接口是一种规范,是一种契约,一种标准,这个呢咱们稍等等再说,因为猛一看大家肯定是不太理解所谓的规范和标准的。
我来说两句