00:00
一提到抽象类,第一反应呢,这个抽象类不能实例化,然后关于抽象方法呢,诶一提到抽象方法,第一反应就是抽象方法呢,所属的类它一定是个抽象类。其次,那你这个含有抽象方法的这个类,我们说通常它得提供此类了,因为你不能造对象嘛,那你要提供此类的话呢,这此类就得有要求了,子类你要么你就把这个抽法都重写了,那你就是个正常的类,该造的想造,你要是没有重写完,你也得是抽象的,哎,就是这样个意思,那么以前呢,没有讲抽象的,感觉用的也挺好,讲完抽象以后呢,我们什么时候用呢?实际上也很容易的去举个例子,咱们之前看是哪一天讲的,咱们讲了一个几何图形。这个咱们讲多肽的时候讲的多肽在哪讲的,哎,这个肯定不是了。
01:07
这个是蒋继成这13。在这大家看咱们讲这个多肽的时候呢,当时是造了一个叫几何图形这样的一个类,然后呢,这个几何图形类里边有个方法叫做求面积的方法,接下来呢,我们在这个圆,还有这个矩形当中呢,咱们呢去继承了这个几何图形,把这个find的艾瑞这个方法呢,还都重写了,但是咱们在最初写这个几何图形的时候呢,其实是稍微有点犹豫的,就是求面积的时候呢,这个图形不知道是什么,那你这个方法呢,是不是就没法写,其实这个方法体这块其实很困难,写不了。那其实现在来看的话呢,这个方法呢,咱们就可以给它做成一个抽象方法了,这个我我别这样整了,这样啊CTRLC一下原来的代码咱们还保留着。
02:08
直接呢,我们CTRLV来粘过来,行粘过来,咱们把这个关了,然后直接呢,看这在这个企鹅图形这个方法叫find方法当中呢,你根本其实就没办法说清楚你到底怎么去求面积,那不妨的话呢,我们就应该把它抽象化,加上一个abstract,那你这块加上以后呢,我们所在的类就也得生明成obstract表示呢,你就不能造对象了,而事实上呢,咱们确实也不会去new几何图形,因为咱们new的时候呢,都是new的这个circle和这个呃,Mary tangle具型,那改完这个福类以后呢,此类也不用改了,因为咱们寄承以后呢,这块也确实呢都进行了一个重启了,真正咱们在用的时候呢,虽然你声明的是这个几鹅图形,但是咱们这块呢,给它赋值的时候。都是负责子类的对象。
03:00
其实这块呢,我们就只是把这个副类呢,做了一个调整就完了,其他的位置呢就不改了。嗯,像原来的这个写法呢,咱们这块呢,说柔return0.0此类的话呢,你自己得心里的记着点,说我要重写一下,因为你这个负类这个0.0没啥意义,但是现在咱们加上个obstra以后呢,你就不用刻意的去记了,因为你要不重启的话呢,你这块是不是也就报错了,它就提示你说你这个有个抽奖方法了,所以这块呢,相当也在提示我们呢,诶要进行这个方法一个重写,那其实呢,在原有的我们没有讲obstract基础上呢,就变得更好了,这个代码啊,这是一个例子,另外的话呢,咱们这个课后这块呢,其实也有个例子来体现一下,咱们开发中确实还是有必要去用这个抽象的,那这呢是咱们一个例子,这个例子里边呢,我们主要就看这块,这个呢叫交通工具,在一个项目当中呢,我们会涉及到一个叫交通工具的一个类,然后具体的交通工具呢,有这个叫卡车,这个呢叫泊船这样两个这个具体的交通工具了,那么在这个副类当中呢,我们既然是个交通工具,就会涉及到呢,去计算叫运输工具的一个燃料效率。
04:07
以及呢,它的一个行驶距离,这是两个具体的方法,那么这两个方法的话呢,你要是在这个负类当中去提供这个方法体其实也很困难。因为你也不知道它具体是什么交通工具写你也写不明确,就跟咱们刚才说的几何图形一样,那那既然这样,那不妨咱们就把这个负类呢。就给它设置成是一个抽象的,然后这两个方法呢,自然而然也就是抽象方法,那么我们的此类呢,去继承咱们的父类,继承以后,你显示的把这两个抽象方法呢,去重写一下,指明一下,就是你这个卡车或者叫驳船,你具体的燃料的计算的方式,或者你行驶的距离怎么算,这个你去提供这个傅类这块呢,它本身也写不明确,所以呢,我们就都抽象化,这呢,就咱们说这个抽象的一个应用场景。哎,比较好理解。
我来说两句