00:00
好了,同学们,那再遥远的东西啊,比如说static封装啊,对象创建和使用啊,是不是,哎,这些东西呢,我们就不再回顾了啊,不再回顾了,下去之后你要记得回顾,要不然你学着学着学着前面都就忘了啊,一些细节可能就忘掉了啊,所以温故而知新这句话其实在我们软件这一块也是非常的适用啊,非常实用。好了,那么接下来我们继续学我们的继承,各位啊,来点右键,我们在这里呢,去新建一个叫做day。课堂笔记啊。来,我们把这个打开啊,那么D16的这个作业呢,到时候我们抽时间看一看啊,现在我们就不再讲这个作业了啊,不讲了。另外助教老师也给了答案了是吧?课堂笔记啊,我们还是来看一看这个继承啊。嗯。
01:02
那么继承呢,首先啊,我们这个来测试一下子类继承父类之后,那么在子类。对象上使用子类,对象能不能调用父类的方法,就是我们先测试一下啊测试测试什么呢,就是说子类啊继承什么呢,父类之后。能使用子类对象调用负类方法吗?其实我们昨天上节课已经演示过了啊,演示过了我不知道大家有没有印象啊。当时我们已经演示过了啊,来再打开那个加打开它,然后呢,我们叫CHAPTER12啊,应该是第12个章节继承啊,把它打开,然后呢,这块有很多class,我把这个class文件先给它干掉,不要了啊。Del新class。好了,那class干掉之后呢,就就这么三个Java Java文件啊,我们呢,其实在这里呢,第一个例子。
02:03
是不是大家看是不是在这里我写了一个叫账户啊,然后在这里写了一个信用账户,对不对,这个信用账户现在呢,没有去继承这个account代码呢,就没有得到重复使用,我紧接着写第二个例子的时候,我就尝试给大家尝试讲了讲,这叫extend是不是extend继承谁啊,我们的account继承之后呢,我在。在什么呢?在这个测试程序当中,大家看我有没有去调我new一个credit account之后我CA去调没调这个set act什么这个方法,Set balance这两个方法,这个方法和这个方法大家看。在我们credit count里面没有,你看。在credit account你看里边是没有的,没有这样的方法,只有一个set credit和get credit,但是我们在这个子类对象创建完之后,我们通过这个子类对象能不能去调用我们分类当中的这些方法呢?就比如set什么呀,Act和set balance,你看是不是用CA调的呀,CA去调的这个这个方法是不是从父类中继承过来的呀,哎,继承过来的。
03:02
这个方法和这个方法是从中继承过来的,各位啊。呃,其实上节课我们已经说过这个了。只不过现在呢,我不放心啊,我在这里干什么呀,我再给大家演示一下,演示一下啊,代码我们再写一写。就在这儿来点右键啊,我们干什么呢?写一个啊,TEST04。嗯。来看一看啊,就是我们要测试一个什么呢?就是子类继承父类之后,能使用子类对象调用父类方法吗?嗯。来class test04。然后呢,Public static void men。好了,那现在呢,假如说有个class animal是动物。
04:05
是吧,嗯,那么动物这一块呢,我们呢,嗯。比如说吧,有一个什么呢?有一个属性啊名字。先不封装啊,先不封装啊。封装的话,我就直接访问这个私有的可能访问不了了啊。不封装的话,我这写的内。行吧,Name啊,然后接下来呢,我们在这儿提供一个方法啊,提供一个动物移动的方法。Public void。A move。好吧,好那么点out.print打印输出啊说name。是吧,啊正在什么呀,移动。Name正在移动啊,很简单的一个一个类,我现在写一个此类,这个此类呢,我叫cat,好吧,Cat猫去继承谁呢?Animal。
05:08
啊,继承animal,那么这个K就属于什么呀,子类呗。是不是animal就属于什么呀,负类呗,是不是,哎负类实际上这个代码我再强调一下它呢。这个代码啊。他继承谁呢?他继承object,就是说你不写这个他也有。啊,实际上就相当于说这会儿的一个结构是什么结构是你猫呢继承animal animal呢他的他又去继承谁object,所以object是爷爷对吧,这个cat猫呢是孙子是不是孙子啊就这个,那么这块的话,咱们。K,继承父类之后,我们在这块new一个什么呢?K?C啊,拗出来这叫创建什么呀?创建子类对象是不是啊创建子类对象,那么接下来调用方法,那么怎么调方法呢?我C呢去点什么呀?我C去点什么呀?Move。
06:13
哎,我能不能去掉呢。可不可以调呢?这个name现在给它附上一个值也行。给它附上一个值也行啊,假如说叫不叫张三呀,是不是animal啊叫。小花。我随便写的啊,我给个值行吧,哎,我给个默认值啊,默认值不是那啊,默认值不是那啊,给一个什么呢。给一个小花啊。来看看啊,现在是不是cat new cat,然后cat是不是继承animal,是不是我说过子类继承父类,会将父类中所有东西都继承过来,对吧?哎,K继承什么呀,Animal。
07:03
会将什么呢?Animal中所有的数,所有的全部继承过来,其实我问大家一个问题啊,你这个类去继承它,是不是就相当于是把这段代码复制了一份放到这里了,对吧?是不是一样的道理啊?这个理解不理解同学们。其实这个继承就相当于是说把我们这个。Animal这个类当中的。哎,这些数据怎么着,给他继承过来吗?是不是给他继承过来啊。技能过来就复制呗。好好想想,复制过来了。就把这些复制过来,但构造方法我说了。他不能拿过来啊,构造方法不能拿过来啊。来,咱们接着看啊,接着看这块能不能掉啊,Cat see new cat see move。
08:06
行不行啊。应该是可以的,对不对啊。来,我们来编译一下。加运行TEST04。零四好,走。小花正在移动。是不是想访问这个name,可以吗?通过子类对象访问name可以吗?System out print,打印啊,输出。输入什么呢?输入C点什么呀?Name c name。S。是K吧,哎,点什么呀,Name,我们来看这个能不能访问。编一下。
09:01
运行,嗯,可以吧。没问题吧,哎,没问题啊,没问题,没有任何问题啊,所以说大家以后这样去理解啊,当我子类去继承我这个父类的时候,他会将父类当中的什么。会将类当中的这一段代码,就像拿过来粘贴到这是一样的。就已经归我子类所有了,这就是继承的一个作用。啊,所以说你创建完此类对象之后,你想去调这个方法不有问题吗?没问题,你看负类中有这个方法可以调,没问题啊,因为我继承了,那就是这个方法就属于我的呗。既然属于我的,我就可以要啊,你这边有个name,这个name是不是被我继承了,继承过来我这个类里边是不是就相当于有个有个name啊。是不是内蒙啊?通过子类对象能不能访问这个内容,可以,你看都可以访问。是不是你有对象调方法访问属性啊。好了,那么这个呢,我就给大家演示到这儿啊。
10:02
子类集成父类之后,能够使用子类对象调用负类方法吗?实际上啊,实际上以上的这个问题。问的。有点什么呀。有点蹊跷了。子类继承父类之后,能使用子类对象调用父类方法吗?我说一下啊,其实这个方法现在子类继承了。这个方法就属于我子类的。你明白吗?同学们。这个问题其实问的有点有点蹊跷啊,其实并不是说子类对象能不能调用父类的方法,其实这个方法已经属于子类对象了。是他调到自己的方法。明白吗?这个实际上是这这个方法实际上是已经拿过来在他这儿了,他调这个方法实际上是他自己的,并不是说什么负类的方法。
11:00
啊,就是说实际上这个问题问的啊,其实有一点点蹊跷,但是你这样这样问也不算错。啊,能使用子类对象调用分类的方法吗?对吧,实际上以上的问题问的有点蹊跷,是什么呢?就是说哪里蹊跷。哎,就是这。能使用子类对象调用父类方法吗?就这个。啊,本质上啊,子类继承什么呀,父类之后。是讲什么呀?是将父类继承过来的方法。归为自己所有。实际上调用的也不是负类的方法。是他子类自己的方法啊,实际上是他子类自己的方法,因为已经继承过来了,就属于自己的啊,因为已经继承过来了。
12:03
就属于自己的。对吧,你比如说小明对吧,继承他父亲的100万财产。那继承过来之后,那你说他能能不能能不能用这100万,那可以用啊,是不是,并且这100万继承过来了,那就是他的呀。对吧,啊,那就是他的。所以说这个东西你看你怎么看啊,哎,看 new catc.move能不能调move方法可以,因为这里是有一个move方法的。啊,子类呢,继承过来了。然后呢,这个name呢,他也被继承过来了。明白吧,哎,他也被也被继承过来了,这个要注意啊,要注意。行了,那这个呢,是关于我们子类继承负类之后,能使用我们子类对象调用负类的方法吗?这是可以的啊,没有任何问题。
我来说两句