00:00
打开呢,我们这个1DI瑞,嗯,还是呢,我们讲的这个钟,今天呢,咱们把这个面向对象这个钟呢,就给大家结了,就呃这个我们在之前的话呢,是把这个继承性呢说了说昨天呢,从这个知识上呢,咱们一上来呢,开始讲的叫方法的重写,对就是讲这个之前呢,咱们当然还讲了一个关于eclipse这个debug的一个调试的问题,这个呢,大家后边呢,开发当中不管呢,是咱们讲了一个知识点也好,还是后边我们写项目也好,大家呢,你一旦出现一些异常的情况,或者说呢,这个执行的结果呢,跟你想的不一样的情况,这个时候的话呢,你可以使用这个debug调试去调试,可以去适应适应这样的一个写法,后续呢,咱们讲到这个we部呀,EE啊,做项目啊等等,这个我们调试功能还会不断的去使用,相信呢,这里边有一个小的文档,我就简单的把这个呢粘一下,核心的话呢,有这样的几个操作的按钮,这个呢我们再调。
01:00
的时候呢,是必不可少的,加载这个有道这个。挺慢的,这个。就是现在这个软件发现比原来这个无耻多了哈,就是以前在下一个软件呢,这个这个还好一点,就现在的话呢,下载一个软件,经常你防不胜防,你要是每次点下一步之前呢,都得看有没有勾,乱七八糟的一些勾,经常的话呢,你就下一步,下一步这个完了以后呢,你回到桌面呢,下了一堆东西,经常会出现这种情况,而且有的还卸不掉,以前的那个百度的那个全家桶就特别恶心,是把这个呢,咱们粘一下,这个国家呢,确实在这方面应该也是做一个规范的,是啥都得规范,不规范呢,这个大家都会钻这个漏洞了,中国人有时候说确实太聪明了,对吧,这这既勤劳又聪明了,就是得规范好性,规范不好,那就是各各处方面都会使劲哈,你像这个说吃这个肉,老鼠肉都能给你变成这个牛羊肉,这个中国人太牛了是吧,这呢是咱们说这个debug调试设计。
02:10
到这样的几个操作的按钮,大家呢,后边呢,通过自己的演示去熟悉一下,这就过了。接下来回到我们说的这个知识层面,第一个内容方法的重写,首先什么是方法的重写,这个我就直接从咱们这儿粘一下,说此类呢,在继承父类以后呢,可以对父类当中同名同参数的方法进行覆盖操作。为什么要覆盖呢?就是我们这个覆类的方法呢,已经不太适合于咱们这个此类了,就比如说像我这举个例子的话呢,就咱们刚才考的这个例子一样,我这呢有一个circle叫做圆,这个圆的话呢,我们有个方法public w型的叫find area,求这个面积的一个方法,那这个方法的话呢,拿到我们这个子类当中的时候,Cylinder这是一个圆柱了,去继承于我们这个circle,继承以后我们就拿到了这个方法,那此时这个方法的话呢,就已经不再满足于我们这个此类的需求了,这呢叫求面积。
03:21
求面积,那到我们子类这块的话呢,这个人家是一个三维的了体了,这求面积就就不太面积,我们平面这个才提叫求面积了,那这呢你就得改成叫求表面积,所以说呢,我们这个方法呢,就需要进行一个重写,包括呢,咱们昨天还讲到了一个课后题,这呢要再写一个话,那就得这样了,我们在这个呃练习当中呢,写了一个叫account,叫一个账户,这个账户的话呢,有一个取钱的方法,你可以告诉他是否取成功了,我们叫with,照这呢是我们要取多少钱,这是昨天咱们写过的一个例子,这呢就是取钱的操作了,那这个方法的话呢,让我们这个子类叫做check count被他呢击正以后,那这个方法的话呢,自然而然我们这个此类呢就也有了,但是这个时候拿。
04:21
到这个方法以后呢,这个方法呢,已经不太适合于我们这个check count了,因为我们对于这个信用卡来讲呢,它这个取钱的操作呢,就更灵活一些,当我们要取的这个钱,从余额当中对比的时候,发现余额不够,我们还可以从你这个这个这个信用卡的你这个额度当中呢,去做一个冲减,所以这呢,我们是可以考虑对它进行一个重写啊,这呢就是取钱的操作呢,更加多样化了,就需要考虑进行一个重写,也就是说呢,在我们实际开发当中,这个重写的操作呢,确实是必要的,尤其是后面呢,咱们讲到抽象类,讲到接口的时候,那就必须要实现这样的一个重写了。
05:02
或者那时候其实还有另外一个词叫做实现,其实跟重写你可以理解成就是一个事儿,就是我们必须要把这个负类当中,或者接口中的那个结构呢,得重新生成一下,写一个你自己的适合于你自己的这样一个方法,都是相当于是这个重写的问题,所以说这是大家需要关注的点,那具体这个应用的话呢,就是当我们重写了以后,咱们呢,通过此类对象去调你这个方法的时候呢,那就是你重写的这个方法。这个呢也很好理解,你要自己重启了还调不了,那那不就太扯了,哎,那怎么调呢?那就是说你调造一个此类对象,哎,你再调的话呢,就是你自己重启的这个就是这个事儿啊行,这就完了。那接下来关于重写的规则,刚才呢,咱们也考到大家了,这里边儿这些规则的话呢,那确实还是需要大家能够记住的啊,没办法,那就得记一下了,CTRLC整个呢,咱们给它粘过来。
06:02
这有点大。嗯,稍微有点对的不是太齐了,具体异常的时候再讲啊,这个呢,经常就省这个有括号也没有了。嗯,这么着一下CTRLS好,这呢就是说的这个重写的一个规则,这个大家呢,下来去记一记,不熟的话呢,这个还得熟悉一下,呃,真正开发当中我们说了就是你直接粘过来就可以了,这个呢也要清楚,然后下边关于这个经典的面试题,说如何去区分方法的重载和重写。这个怎么去答呀?这个问题答的话呢,这个还是所有同学都得会的啊,嗯,就是一方面呢,你是为了应付这个叫笔试面试的,另外一方面呢,你确实自己也别整混了,你自己一会重打一会重启都整懵了,比如说构造器,构造器能重启吗?
07:15
重写能吗?不能确定吗?肯定的不能重写了,构造器咋重写,你重写的话呢,你还能把负类那个person那个构造器粘过来,你重写一下,那你构造器是叫什么名呢?改成student呢,改成又不不同名了,是吧?所以构造器肯定不可以重写了啊,但是可以重载,像这些问题的话呢,这个都得知道,这个这个问题怎么答呢?这个一方面啊,你可以呢,就先把二者的这个,呃,什么叫重载,什么叫重写呢说一下啊,那就是说二者的这个概念。这个呢是可以说一下,详细的我就不在这写了,比如说重载说呢,我们可以在同一个类当中可以声明多个这个方法名,相同形态列表不同的方法,彼此之间呢就构成了重载,同时再补一句说构造器呢也可以重载。
08:08
哎,就是把这个方法构造器重在式呢都说一下,那么重写呢,就咱们上午说这个上面说的说此类呢,在继承负类以后,这一下子就有了个大前提,重写呢,一定得有这个子复类了,子类呢在技能负类以后呢,我们可以对父类中同名从参数类方法呢进行一个覆盖操作,这呢我们就叫做重写,所以这两个概念呢,是首先呢你要抛出来的。这是第一个问题,然后第二个问题,第二问题的话呢,其实呢,你就可以稍微的去谈一谈这里边这个细节问题,这个相当于是嗯,这个重载和重写的一个具体的一个规则,具体的规则的话呢,就是重载两同一不同,重写就咱们上午写的上上面写的这样一写了,这个呢,进行简单的一个说明,那到这以后呢,其实再可以说一个第三个点,这两个点说完以后呢,其实就算是基本上是合格了。
09:04
是也是还算不错的了,你说这这个我肯定可以搞得定,但是你要真正到后边面试的时候呢,因为有好多面试题都需要去你去背,需要去记,到那个时候可能就一下子就懵了,再加上这个一面是有紧张,就像大家中午演讲的时候,上来以后呢,大家都知道这个声音大的话,应该开了个音量,但是你上来以后呢,有同学就找着,找半天不知道怎么音量变大,就懵了,就啊那这个事儿的话呢,你得到时候脑子里清醒,这是我们说的这个具体的这个规则,然后呢,你要再说个事儿呢,就是咱们昨天讲的这个多肽了,讲了多肽以后呢,咱们提到了说这个重载呢,它呢不认为是多肽性啊,叫不表现为这个多态性,而我们这个重血它是呢,哎,表现为这个多态性,这个呢,大家关注一下,你要详细展开说的话呢,就是咱们昨天讲的这样的一页PPT,哎,这页PP。
10:05
主要呢,就是从编译和运行的角度,我们来看一下,就是说我们这个重载的话,在编译期呢,就确定你掉的是哪一个了,确定就掉是哪一个,运行的时候也是这一个,而重写不是。重写的时候呢,编译认为掉的是这个负类的,然后你运行的时候呢,是不是就掉成这个子类的了,这时候呢,就它体现为叫一个多态性,或者说呢,我们叫这种叫动态绑定,就是虚拟方法所体现的这个点,所以说这块的话呢,大家你要说关于这个重载重写再想多谈一谈,你把这个事儿的话呢,你给大家展开说一说,这个呢,绝对是你的这个加分项啊,说明理解还是非常到位的。行,这就这样了,我就不再多说了啊,这个呢是一个绝对的加分项了,那么其实真正开发中用的话呢,就直接用就完了,该重载就重载,该重写就重写,没有特别多的这个讲究了就行,这就过了,下一个叫关键字super,看看这super老是想理解成这个supper哈,这个不是那个晚饭这个super超级的,首先呢,这个super关键字可以理解为可以理解为什么呀,叫负类的对吧?负类的,因为咱们这个副类呢叫super class,所以这个super呢,哎,你就可以理解为它叫负类的,那么可以用来调的结构有哪些呢?
11:34
属性方法构造器跟咱们那个这次呢其实一样,只不过这次呢掉的是你自己的,那super呢调的是负类的,这样首先super呢来调属性,调方法,这个呢咱们也写了没没考大家这个属性跟方法的事儿,但你也得知道。把这三个点拿过来,CTRLC。
12:18
行,这呢,就我们写这个事儿,简单说一下,就是一般呢,咱们如果在此类当中,现在有此类哈,你要是super呢,这肯定是涉及到这个父类了,得有子负类关系了,就基正以后我们才会讲这个super关键字了,在这个子类当中呢,我们如果你要调到父类的这个属性啊,或者方法的时候呢,当你不会出现说子附类这个属性相同名了,或者说呢,你此类呢,也没有对父类中的方法进行重写啊,像这个时候呢,我们支会呢,就都省略掉了,也也不会有什么特别的这个区分不开的情况,那有的情况呢,说必须要用,就是说呢,你此副类中定义了同名的属性。这是一种情况,哎,这时候呢,你为了区分出来,你掉的是父类中的这个属性,得加个休克点在这,接着当呢,我们此类呢,你重写了父类中的这个方法的时候,你重类方法的话呢,那这时候呢,相当于是覆盖了,但是呢,你如果还有需求想调一下父类中的那个被重写的方法,那你就用super。
13:20
其实也很好理解,有点像咱们讲的那个Z一样,行三跟属性分不开了,那该用得用,就这意思,那下一个呢,就是修克掉构造器,这呢是一个难点,需要大家呢去体会一下,咱们呢,这个刚才考试呢也考这个问题了。It can。行,那大家想你说这个面向对象,它到底说这个思想是什么呢?其实说白了就是由这些一点点这个知识呢构成的,这就是咱们第一天讲的那个叫建物一样,这个渐不是那个渐,渐渐的物这个意思啊,这个就是今天学一点这个关键字,明天学习那个特性啊,后天呢,就讲一个类的结构,就是这样一点点知识构成了,最后呢,把整个面向对象的这个思想体现的一些具体内容呢,就搭建起来了。
14:17
就是每天这样的一些基本的知识点,当呢,我们把这个第六章整个讲完以后,那涉及到面向对象这块呢,其实全貌呢,大家都看得到了,然后呢,咱们留了一个作业,说大家呢,你自己画一个思维导图,你把整个的面向对象里边这些细节呢,都给大家整合起来,那整合这个过程其实就是你把这个知识梳理掌握的一个过程,这个大家不要这个小看了这样一个过程,嗯,消化吸收一下,你自己整完以后呢,你可以跟同桌呀或谁呀,你们互相交换着看一看,你看看他整的里边一打开,哎哟,他这里边多了俩点,我这没有,你们再互相的再补一下,这就形成你自己的这样一个思维导图,这一个脑图,那么我们后续不管是Java基础还是后边我们做Java项目的开发,企业级开发,那整个呢,都离不了这个面向对象的思象Java语言的核心就是面向对象。
15:03
啊,就这样子的啊,包括呢,它这个后续这个新特性当中也加入一些所谓的函数式的一些编程的特点,但是呢,你再加它本这个主体上还是没样对象的啊,你就加一些所谓的拉姆纳表达式,那在Java层面呢,还是一个对象,那Java你是面向呢,他又逃不出这样的一个现实,所以呢,这些规则呢,都一定要遵守,所以呢,这些细节啊,都得需要大家清楚,哪个不清楚了,你后边你整个修块整不明白了,那可能后边一系列的这个代码你就看不懂啊,所以这里边呢,面向对象里边这个细节呢,比较多,还都得基本上需要大家能够清楚,个别需要你了解的不是那么重要的,我会说就这样啊。
我来说两句