00:01
嗯,那么下面呢,咱们要讲的是类类型,也就是说类它也有自己的类型,那在TS当中怎么去实现类的类型呢?也是通过接口的方式,和c sharp或者Java当中的接口的作用是一样的啊,TS也能够用它来明确的强制一个类。啊,符合某种契约,简单来说就是什么呢?我们可以让类实现某个接口,然后呢,可以把当前这个接口看成是这个类的什么呢类型啊。好,那现在咱们来看一看啊。首先我在src目录里边新建一个文件,这个是零三杠,然后呢是类类型点TS。在命点TS当中把这行代码处理掉,不要了啊。杠。好,融入进来啊。那我这边这些东西呢,都去掉不要了啊。好,接下来是类类型,类类型指的是类的类型,比如说类的类型可以通过什么呢?
01:03
接口来实现来实现啊好括号括号咱们来看一下啊,并不复杂,也是比较简单的啊。首先。定义一个接口,然后下边定义一个类。然后呢,这个这个类的类型,就是上面定义的接口。所以说叫做类类型嘛,好怎么去做呢?比如说来一个interface,比如说I。好,里边写上一个FLY括号。这里边儿就相当于说我写了一个什么呢。方法,只不过这个方法没有任何的实现,就是该方法没有任何的这个实现,就是说简单来讲,方法中什么都没有。好。那然后下边呢,我定义一个类是吧,比如说我来一个class,好写成一个person是吧,来一个。
02:07
然后后边写的是什么呢?写的是这个I fly这个接口。啊,注意啊,这是定义了一个类,它为什么会报错呢?我们来看一下。他说,啊,Person已经声明了,但你从来没有使用过,这还不简单吗?直接count来一个person等于什么new person,那我不就使用了吗?是吧?哎,你看,如果说你定义了一个变量,或者说定义了一个东西没有用的话,它就是这种灰色的效果,如果要用了,它就是高亮的效果,是吧?啊,现在我们来看啊,说类person错误实现接口FLY,说类型person中缺少属性FLY,但类型FLY中需要改属性。换言之就是什么意思呢?说你这个接口当中有一个方法呀,是吧,那既然说我的这个类implement I fly实现了这个接口,那你必须要把接口当中的这个约束也给我拿过来,所以说接口啊,可以看成是当前这个类的一个约束。
03:03
然后在这加个注释啊,就是说呃,我定义了一个类,这个类的类型就是上面定义的接口是吧,也实际上也可以理解,为什么呢,这个if fly接口约束了约束了什么呢?当前的这个person类。啊,好,那怎么做呢?把这个腐来拿过来。哎,然后呢,加上一个大括号里边写上一个内容那个,比如说我会飞了啊,我会飞了是吧。我是超人。然后呢,我们再来看啊,这有什么用呢,这个叫做实例化对象啊。好在这通过P可以直接调用这个FLY是吧,还有提示呢,保存一下我们看一下效果啊。找到这边我们看啊,我会飞是吧,我是一个超人,这就是接口和这个类它们俩之间的关系,它们俩之间的这个关系不叫做继承,叫做实现啊,Implement实现这个类,实现了这个接口,也必须要把接口当中的内容给它真正的书写东西啊。
04:08
这个叫做实现接口中的什么呢?方法啊。这个呢是比较简单的是吧,好,那我在干嘛呢?再来一个例子。啊,定义一个什么呢?接口,那interface叫做is swim swim,这个相当于是游泳啊,S swim。然后呢,注意看注意看我在这块这么做啊,我再次定义一个什么呢类,然后呢,这个类的类型就是什么呢?诶。If fly和SWM。下面加个A啊,这什么意思呢?啊,其实意思很简单,就说明什么呢?当前这个类可以实现多个接口。
05:02
我们之前说过,接口相当于是一个能力是吧,那我这个人有多个能力,这不也行吗?是不是啊,或者说我这个类同时被多个接口进行约束,它也是可以的啊,比如说一个类啊,同时也可以被多个接口进行什么呢约束?啊,怎么写啊。呃,Class,我再来一个什么呢?PERSON2吧,是吧?C、写作。然后这块我写上一个什么呢?If fy,逗号s wi。这个前面是I开头的啊。好这样我当前这个类呢,就等于干嘛了呢,实现了多个结构好。然后那我怎么做呢?他为什么报错了呢?还是三个问题啊,第一个问题声明了没有使用过,第二个问题,你实现了I fly接口,但是里边的方法你没有去书写是吧?好,你实现了s swim这个接口,但是里边swim你也没有去实现,所以说怎么办呢?很简单,只需要把它拿过来。
06:06
把这个拿过来。然后加上大括号,加上大括号啊,点log括号。我飞了是吧,我飞了啊。然后下边这个。点log个括号啊,我会游泳了。是吧,这也是二吧,好这么写,然后下边呢,还是咱们实例化对象啊。来一个cost person什么呢?二吧,等于new person2。啊,然后呢,P2当中我们来看啊,点是不是有个FLY吧啊可以调用PON2里边我再点,诶是不是还有个s swim啊也可以调用保存一下,我们先来看一下效果啊。刷新一下,大家看我会飞了二是吧,然后呢,我会游泳了二啊,没有问题,那刚刚的这个代码说明了一个什么问题呢?咱们做一个小总结啊。
07:00
啊,什么意思呢?就是说类啊,可以通过接口的方式来定义当前这个类的什么呢?类型啊然后呢,类可以实现一个接口,逗号类也可以实现什么呢?多个接口。但是要注意要注意啊,接口中的内容,接口中的内容都要真正的实现。到真正的实现,这样才有效果啊,然后呢,现在我就想到了一件事情,说我的这个类可以同时实现两个接口,或者说可以同时被多个接口进行约束,是吧。那就想了,我能不能有一个接口。干嘛呢,也去实现这两个接口。然后我让某一个类去实现某一个接口,是不是会更加方便一点呢?因为如果说我有一个类要实现多个接口,很多很多的接口是吧,四五个,六七个,那我将来要是这样写下去的话,这不就是一直逗号逗号逗号的方式嘛,很麻烦是吧?哎,所以说接下来咱们再演示另外一个问题啊,累啊,就是什么呢?接口可以继承。
08:15
可以继承呢,其他的多个接口,比如说interface叫什么I my fly。呃,按照什么呢?SWM吧,好。然后呢,注意。后边写的是I fly,逗号I swim,诶。我这定义了一个接口啊。这是定义了一个接口,然后呢,干嘛了呢啊。继承其他的多个接口。是吧,但是里边什么内容也没有写,他没有报错是吧?他没有报错啊,已声明,但从未使用过,大家看没有任何的错误信息啊。
09:00
好,那下边要干嘛呢?我再定义一个类,定义一个类逗号,然后呢。直接实现什么呢?I may fly and swim这个结构咱们看看行不行啊?Class再来一个person什么呢?三。注意啊,这个位置仍然是I employments,然后后边写上一个什么呢?I my fly and swim这么一个接口,我们看可不可以啊,看不错了,什么呢,声明了从未使用过,这正常,然后呢,说这个类型PERSON3缺少类型。当前这个接口当中的两个属相,一个是FLY,一个是STEM,是吧,那很简单了,把他们两个拿过来直接实现了吧。是吧,我这个位置就改成了三,这个位置呢,也给它改成一个三啊。然后呢,紧接着我去实地化一下,看PERSON3等于new person什么呢?三,嗯。然P3能不能去调用FLY呢?可以,P3可不可以去调用这个swim呢?还可以是吧?
10:09
格式化一下保存啊,咱们看一下效果。刷新一下,我会飞了三我会游泳的三是吧,没有问题。啊,那至此呢,咱们再稍微的总结一下,看一下啊。说类实现接口,注意接口和接口之间叫什么呢?继承啊,我们继续的去总结啊,那接口和接口之间叫什么呢?继承啊,类和接口。之间叫什么呢?叫实线,要注意了啊。然后我们去看啊,再加上一点啊。呃,接口和接口之间叫继承,那么里边使用使用的是什么呢?Ess关键词啊,类和接口之间叫实线,那么实线使用的是什么呢?Apl。S啊,当然了,嗯。
11:04
还有一个什么呢?接口和接口之间叫继承类,和接口之间叫时间,OK,这个没有问题啊。然后我们继续看啊。呃,一个类可以实现多个接口,这个咱们刚才已经演示过了是吧,接口可以继承接口,这个也没有问题是吧?哎,这样更加的灵活啊。啊,那这块就没有什么东西了啊,刚才讲的是类类型。
我来说两句