00:01
好了,同学们,咱们接着往下看啊,上节课呢,我们最主要是说了一下这个继承这块的东西啊,继承呢,我们目前啊,就先学到这儿,各位啊,先学到这,那么这块的这个内容啊,其实还有一些还有一些东西我们穿插到后边的内容去讲解啊。那我再来总结一下,我现在这个继承,到目前为止我讲了什么?啊,看大家有没有什么遗漏的知识点好吗?你下一周你也捋一捋啊,首先第一个呢,继承这个东西啊,它的关键字啊,你要注意叫extend extend这个关键字,这是第一件事,第二件事你要知道咱们继承这块的啊,有六条规则啊,我说大家有没有注意这六条规则,我就不再翻了啊之前的这个。呃,对,16的一个课堂笔记里边有啊,到时候你可以看一下好吧,看一下啊。六条规则。那么。我们继承这块是单继承。啊,如果你没有去继承别的类,默认继承object。
01:03
啊,默认继承object,另外子类继承父类之后呢,可以在子类里面直接调父类当中的,这个方法是没问题的啊,是因为子类已经把它继承过来了。另外在实际开发中,什么时候我们可以采用继承,你要看一看能用能不能用is呢去描述。如果可以用is去描述,就表示可以采用继承的一种方案啊,然后再往下的话,就是我们说了一下object这个类当中的方法啊,其中呢,我揪出来其中一个方法叫什么呀?叫to string方法,给大家说一说,当我们system.out.print打印输出一个引用的时候,这个print LN这个方法它会自动调用引用的to string方法,然后将引用的to string方法执行之后的结果输出啊输出。行了,我们就简单的回顾到这儿啊,就简单再提一下这个继承吧,那接下来继续再往下。那么再往下这个内容是什么呢?我们一起看一下啊,往下这个内容是新的一个章节了,各位啊,新的章节了。
02:03
那么这个章节呢,叫做方法的覆盖和多肽,那这个呢是非常非常之重要,各位啊,不管是哪个同学啊,在座的各位,这个方法的覆盖和多肽是必须要掌握的。因为这个是属于我们Java语言的一个核心啊,方法覆盖和多态机制啊,和多态机制分两块去讲,一块是什么呀,是关于方法的覆盖。对吧,哎,方法覆盖这块包括什么呢?什么时候需要方法覆盖。哎,这是满足什么条件,是不是什么时候。哎,这个需要什么?呃,应该怎么进行方法覆盖,对吧,在语法上应该怎么实现。啊,然后下面的是方法覆盖的条件以及注意事项啊,以及注意事项。好了,那么先先来看看这个方法覆盖吧,好吧。那这样的话,这是一个新的章节,所以这块呢,我应该把这个12呢给它关掉,然后再新建一个新的目录,我们叫chapter。
03:00
13啊,然后呢,我的DOS命令窗口也需要切换一下。好切过来啊,来一块儿看一下,在这个目录下呢,我们点右键啊,新建呢第一个程序。哎,我们叫over什么呀?Over overwe啊test01.java。嗯。我们来看一个程序over test定义。Public static avoid。大家一起看一下啊,比如说现在呢,我在这里给大家写一个这个代码,大家分析一下,我这有个animal啊,Animal呢里边有一个方法,各位啊方法,这个方法呢,叫做移动public void move,然后system out.print打印输出什么叫动物在移动,接下来呢,我在这里呢,我加一个什么呀,比如说有个呃,有一个类啊,这个类呢,假如说我这个类啊,假如是父类,然后再来一个,假如说这是子类。
04:16
那么这个子类呢,叫做bird吧,鸟儿啊,去继承谁呢?Animal,然后接下来呢,我们在这个位置啊,去创建一个对象,各位看好了啊,对象怎么创建的,叫bird b,你有一个什么呀?Bird。那这个呢,叫创建一个鸟对象,是不是叫创建鸟对象,那创建完之后呢,接下来我们干什么呀?哎,让鸟儿移动怎么移动b.move。好,大家看这个代码应该能看懂吧,因为子类呢去继承,父类会把这个方法原封不动继承过来放到这儿。是不是,哎,那么这个时候呢,我们调用我们的波的这个对象的它的目这个行为或者是动作,那这样的话输出内容是什么呀?是动物在移动,我们来看看是不是这样的。
05:08
Java c呢,我们去编译一下所有的Java程序,Java去运行,我们叫over test01走。动物在移动输出了,是不是?哎,这个动物在移动输出了,但是大家看这个程序它有什么样的问题,就这么写,有什么问题好大家思考一下,鸟儿继承了我们animal之后,那么鸟儿如果移动的话,我们是不是最好让它输出一个鸟儿在飞翔啊,类似的。类似的类类似的话。是不是你从父类当中继承过来的这个方法?是不是已经没有办法满足我当前此类的业务需求?对吧,你现在这个程序存在的问题是什么呀。就是当前程序存在的问题。
06:02
设计上的问题啊,就设计上的问题。代码编译没问题,运行也没问题,你看编译运行你看都没毛病,是不是就是鸟儿在执行什么呀,Move方法的时候。最好输出的结果是什么呀?是鸟儿在飞翔。鸟儿在飞翔。啊,但是当前的程序。在执行目方法的时候。输出的结果是什么呀?是动物在移动。啊,是动物在移动,显然很显然什么呀,很显然很显然什么呢?这个bird子类从。
07:00
Animal父类中继承过来的目方法已经无法满足子类的业务需求。就你在现实的生活当中,现实的世界里边肯定也是有这种情况的,对不对啊,你比如说你在这里有个负类,负类当中有一个方法或者行为或者动作,那么接下来你写了个此类呢,去继承了父类之后呢。那么接下来大家想一想,我们这个方法这一块有没有可能需要改进啊?就从父类中继承过来的方法,有些方法是需要哎原模原原不动的,但也有一些方法是需要改进的,在现实世界里面,我们是不是也有这样的一个需求啊,各位大家先思考一下啊,就是子类啊,子类,子类继承父类之后。有一些行为可能不需要改进,对,有一些行为可能不需要改进。有一些行为。
08:07
可能啊,面临着必须改进,因为父类中继承过来的方法已经无法满足此类的业务需求。明白吧,哎,你比如说你这块class再来一个K去继承谁啊。K去继承animal,那么这块呢,你想一想,我们在这儿是不是也是创建一个。K类型对象啊k say一个K出来完之后呢,点move move对吧,接下来我们再去编译,编译去运行。动物在移动,那可能对于这个猫来说,我希望的这个移动啊,应该是猫在走猫步。
09:00
就是我希望什么呢?猫在移动的时候,我希望什么呀?输出猫在走猫步啊,你看多高端,是不是鸟儿在移动的时候,我希望它输出什么呀?哎,鸟儿在飞翔,这鸟儿在移动的时候希望什么呀?输出鸟儿在飞翔,诶这样。所以说我们有很多种情况呀,可能需要从分类里边继承,但是继承过来这个方法可能怎么着呢?哎,我们需要改进一下。为什么要改进啊,因为我们子类继承父类之后啊,负类的这个方法的这个这个方法体里边写的这个代码可能需要一个,呃呃,已经没有办法什么呀,满足我当前的一个业务需求了,就你这个这个实现我可能不满意。就此类对父类的方法实现不满意,可以怎么着啊,哎,可以进行,哎,我们即将要讲的一个东西叫什么呀,叫做方法覆盖。
10:01
啊,方法覆盖。各位啊,这个呢,就我就把方法覆盖的这个大幕呢,算是拉开了啊,大家思考一下,想一想当前这个程序当然运行是没有毛病的,是不是没有任何问题的啊,当然大家想想animal当中有没有可能有一些方法,比如说我这里可能会有一个方法,这个方法叫do some啊,这个方法将来被子类继承之后。有没有可能人家这个方法不需要改进啊?有,有没有可能,当然有可能,有可能这个方法是不需要动的。对吧,所以说我说了有一些方法,它子类继承之后啊,有一些方法,可能这个负类的一个实现,对于子类子类来说他是不满意的。啊,那么这个时候呢,才需要用到什么呀,我们所谓的即将要讲解的这个东西叫什么叫方法覆盖,但也有一些方法,他可能不需要动啊,不需要动你就别动就行了啊。
我来说两句