00:00
行了,那这个总结一下各位啊,在这个课堂笔记里边,我们总结一下抽象类,抽象类这个抽象类这块有几点各位需要大家掌握的。几点?我们拿一下呗。是不是啊,这个不用拿了吧。这是帮助大家理解的吧,不用拿了,哎,抽象类属于什么类,这这这就不用说了,它属于隐形数据类型,对不对,哎,这个也也不用拿啊。抽象类怎么定义?哎,我觉得这个有必要。啊,就是第一个你你你得知道,就是说我抽象类的一个语法。就是第一啊,抽象类怎么定义。在class前添加什么abstract关键字就行了,这是第一点啊,第二点是什么呢?来,我们从这捞一下啊,抽象类是无法实例化的,无法抽象对象的。这个也得知道。第三。
01:03
Final和abstract不能连用,这个大家知道。第四。呃,第四是什么呢。第四是抽象类的子类,可以是抽象类,也可以是非抽象类啊,也需要拿。抽象类生来就是当爹的。可以可以可以啊,来抽象类虽然无法实例化,但是抽象类有构造方法,这个构造方法是供此类使用的,这是第五啊。第六。嗯,讲了半天了,这个总结一下啊,抽象类不一定有抽象方法,抽象方法必须出现在抽象类中。抽象方法必须出现抽象内容。第七。抽象方法怎么定义?对吧,Abstract do some分号啊第八。
02:03
我觉得应该是一共就八条啊,最后一条一个什么非抽象的类,继承抽象类。必须将抽象类中的抽象方法。进行。重写。覆盖实现。好了,一共八条啊,抽象类这块一共就八个注意事项。啊,这就是我们讲了半天,主要就是讲这些东西。那主要就是讲这些东西应该还行吧,来抽象类怎么定义啊,在class前面加abstract。是不是抽象类是没法实例化的,无法抽象对象的,对不对?Final abstract不能连用吧?抽象类的子类可以是抽象类,也可以是非抽象类吧?抽象类虽然无法实例化,但抽象抽象类中有构造方法,这个构造方法是给谁使用的呀?
03:00
给子类用的啊,抽象类中不一定有抽象方法,抽象方法必须出现在抽象类中。抽象方法怎么定义?这样定义一个非抽象的类继承。我重点画上这个啊,重点123455颗星。五颗星表示它的重量啊,最后一个就是我们刚才说的,你这个类如果不是抽象类去继承一个抽象类的话,你必须把这个。抽象类里边的抽象方法在这儿给他实现了,给它覆盖了,给他重写了,如果你不覆盖不重写会有问题。编译器会报错啊,你给他写出来就行了,代码以后写的话就偏就就偏多态多态写这样啊,我给大家出一个出一个出一个主意,我这个主意可能之前说过啊,以后啊,大家写代码啊怎么做。哎,你这样注意啊,能用多肽就用多肽。行吧。能用多肽就用多肽,行不行?同学们收到了吗?你现在还不懂多肽是什么,有有什么作用,对吧,你以后写代码。
04:07
写代码啊,你能用多台就用多台。你先这样用啊,用着用着到后期你就知道了,好吧,那我最后总结的这就是一个经典的经典的一个东西了啊经典同学就是在座的同学,你要是多肽没有懂,多肽的作用你也没懂OCP开闭原则你也没懂啥,这个那都没懂是吧,你就记住以后能用多肽用多肽。就是如果多肽没学会的是吧,你能用多肽就用多肽,这样我写到这个程序里边啊。就是呃,当对什么呀多肽不是很理解的时候啊,以后写代码能用多肽就用多肽。啊,慢慢就理解了。啊,这是偏思想方面的一些东西啊,思想方面的多肽副类型引用指向一个子类型对象,其实也就是到目前为止,我们只是讲解了抽象类的一个,啊这个什么呀,叫做基础语法对不对啊,就是到目前为止吧,只是学习了抽象类的基础语法。
05:21
对吧,一个类到底声明为非声明为抽象还是非抽象。这个以后慢慢来吧。啊,学项目的时候。或者写代码多的时候自然就理解了,现在这个就是只是一个基础语法学一下啊行,那么在这里呢,我还有一个点各位啊,我在这里呃,考一下大家。大家。这个面试题我写到这儿啊,面试题,这个面试题是这么说的啊,他说呀,呃,Java语言中。
06:11
凡是没有方法体的。方法。都是抽象方法。他问你这道这个这是个判断题啊。Java圆中凡是没有方法体的方法都是抽象方法,这句话对不对?对啊。不对。就咱们同学怎么说呢,现在也是猜啊。
07:03
哎,我说一下,我说一下啊。构造方法也有方法体验,怎么是抽样方法呀,是不是?没有方法体的方法,都是抽象方法。嗯。来来来来。这是因为大家还没有看过这个源代码。各位啊,先不要说话啊,不要说话,咱们走一波源代码好吧。哎,君丽太棒了,君丽啊,好像还有个C加加,太棒了太棒了太棒了啊,感谢终于有同学跟我合作一把啊,来,Program fell加va下面有一个JDK13JK13LIBRARY,打开src源码,Java base Java点浪包下有一个叫做object。Object老祖宗,我问大家。这是一个抽象类吗?这是抽象类吗?对。
08:01
这是抽象类吗?不是抽象类吧?好,大家看这个方法有没有方法体呀。你就不用管别的老师,我看不懂,你看不懂就就对了啊,你看不懂就对了,你看这个地方是不是有分号没有没有大括号,来再找一个看这个这个方法是不是有方法名,有括弧,有参数,就就个分号结尾啊,没有方法体吧,但是我告诉你啊,因为有一个关键字叫native,记住啊,有个native底层调的是C加加。这不是抽象方法,抽象方法都有一个abstract,明白吗?它都有一个abstract,你看你没发现这个方法没有那个abstract吗?对吧,这个方法。包括这个方法,再往下找一找,像这个哈西扣的方法。虽然都没有方法体,但是他们呢,底层调用的都是C加加写的代码。都是调用C加加写的代码啊。所以说这个判断题呢,大家要hold住。
09:02
要hold住啊。来我这里呢,写一下写一下在哪写呢,在那课堂笔记里边总结一下啊。Java语言中凡是没有方法体的方法都是抽象方法,不对。不对啊,错误的object类中就有很多方法都没有方法体。都是以什么呀,分号结尾的。啊,但他们都不是抽象方法。啊,例如随便拿一个过来啊。随便拿一个,比如说我拿这个拿别拿这个,别拿这个啊拿这个。拿这个,拿这个过来。例如这个啊,这个哈希这个方法啊,这个方法底层调用了C加加写的动态链接库程序。
10:09
啊。前面修饰符列表中没有什么呀,Abstract。有一个啊,表示调用M地程序。这个我们没学过。的没办法,对,没学过啊,没学过。没学过啊,我就是坑大家一下啊,来抽象类彻底讲完了各位啊,彻底讲完了,最后这个面试题你会也行,不会也行,无所谓啊,慢慢慢慢咱慢慢来,着啥急呀,是不是,哎,着什么急呀,对不对,哎,咱不用着急啊,不用着急。慢慢来啊,见多识广明白吗?见多识广就这意思啊,来,把这个关掉。那C加加语言底底层是啥?哎,我的天呐,那那你要是问杜老师,有的时候杜老师也给你答不上来,对吧?C加加语言那就是C语言啊,这个C加语言底层是C啊对,有道理啊有道理底层是C,对那问我C底层是啥,那那那那那这个东西那那咋解释呢?是不是,那咱就不用在这磨叽这个了啊。
我来说两句