00:00
这呢就是咱们说的这个继承里边的一个基本的内容,实际上呢,这个继承呢,还是比较好理解的,比较好理解的,后边呢,这个多态性相对来讲是要难理解一些,那么这个内容清楚以后呢,咱们再来看一下Java当中关于这个继承性的一些基本的一些规定,诶Java中这个关于继承性的一些规定,规定有哪些,我们这呢,来看一下这个PPT。看这块,嗯,不是这块这块这个Java的话呢,我们是不允许这样的情况出现的,是可以允许这样的,以及这样的情况我们具体展开一下,先说一下这个情况吧,先说这种证据的情况,一个父类我们看到呢,它是可以有多个子类的,就像咱们刚才看这里边一样,我这一个person类啊,我好容易把这个person类的功能呢都造好了,你现在要让我只让一个子类用,其实有点亏得慌。
01:03
那其实呢,就是你可以让多个子类用,换句话说呢,就是一个类呢,可以被多个子类去继承这个这个第一个点。说一个类。可以被多个子类继承,那你多个子类谁继承它,谁就具有它的功能了啊用咱们这个人的这块呢来举例,就是说一个人呢,他可以生多个孩子。这是OK的,那么反过来讲,反过来讲,我们说一个类呢,只能有一个负类,只能。有一个父类,那这个体现出来呢,就是我们看到的这块,这个你你从下往上去找子类呢,它只能找到一个父亲,看这块儿呢,这种情况呢,在Java中是不允许的。
02:00
一个子类往上一找,发现有仨父亲,这个在人类社会当中,这个就很混乱了啊,这个人类社会其实也只有一个,只是说你不清楚是哪一个而已,对吧?嗯,就很容易混乱啊,这个C加加的话呢,是支持多重继承的,咱们Java是不支持的,就是你有多个父类,这个事Java是不允许的,我们把这个Java呢只允许有一个父亲,这个事呢,称作叫单继承。单继成,或者严密来讲呢,就是Java中这个类的单机成性,我把它写到前边吧。这叫Java中类的单继承性,具体的体现呢,就是说我们只允许一个类,呃,一个类呢,只允许有一个父类,这就叫做单继承性,不同于C加加当中的那个,这个类呢是允许多继承的,多继承指的就是一个类呢可以有多个负类,功能上倒是确实拓展了。
03:04
你像这个类里边有的功能,这个有的功能,这个有功能,然后这块呢,它都继承了,是不是它就全有啊,哎,看着是挺好的,但实际上呢,这样的话呢,很容易在调用的时候呢,出现混乱,你像人一样,这个关系就很复杂,就很乱,那就不能这样整,嗯,Java里边呢,咱们这个类呢,只能是单集成,那后续呢,咱们还得会讲一个概念,叫做接口,Java呢是这个类呢,是可以实现多个接口的,通过这样的方式呢,我们也可以去拓展这个功能,也可以去拓展的,所以呢,我们暂时呢,先只是没有提而已,只是这个问题,这呢是这个情况,然后再涉及到的情况呢,就是我们这个类。它呢,有一个子类是它,然后这个类的话呢,它可能还有子类是下边这个。或者这个图不清楚的,再看下边这个图也行。这是一个person类,Personally有个子类叫做student student还有个子类叫graduate。
04:02
那这呢,就是这种叫多层的一种关系。那么对于我们的student来讲,Person呢?是它的父类,乙是子类。但是对于graduate来讲,你是子类,它是不是就变成父类了,所以这里呢,我们说子父类呢,它是一个相对的概念。是相对的概念。那也就意味着呢,我们这个类呢,实际上它是可以多层继承的。就是这是一个类,它可以呢,被我们下边这个子类所继承,这个子类呢,还可以接着呢被这个子类所继承,就是这样的一个关系,我们这呢叫做多层继承关系,多层继承,那么这个时候呢,对于它来讲啊,这呢它肯定是子类了,这叫做负类了,那这个叫什么?对于我们这个类来讲,叫爷爷类了,蟑螂里边没这样叫的啊,这个把它呢也叫做父类,这跟人有点区别了,就是这个对于这个类来讲呢,它是这个子类的,这个写个ABC吧,啊是这个那个的。
05:13
对于C类来讲,B是它的负类,A呢也是它的负类。那稍微要区分一点的话呢,我们把这个B呢,称作这个C的叫直接负类,这个呢是它的间接负类,因为你是通过B继承的这个A。啊,通过B又继承了A,所以把这个A呢叫做C的一个间接傅雷,那A上面可能还有还有一个D呢,那么把这个A也好,D也好,都看作C的间接负雷,就上边这些都叫间接雷。有这样的一个概念,那么这时候问题又来了,那我们这个C这个类,你说它里边这个功能啊,肯定是继承了B里的,你说这个A里边的和D里边的功能,C有没有,有说没有的,那那要没有的话呢,那这个Java这样多重集成,那不是意义又不大了吗?我为了这样多层的这样去去继承,不就是为了想把他们功能是不是全都漏过来,你这样只让的有B的,没有A的。
06:12
那多不好啊,对吧,或者你从这个基因的角度,这个基因传给他,他传给他,这不是也能传过来嘛,是吧?或者再换句话说,你这个A呢,继承了DA就有D的东西了,你B又继承A了,有A的东西,那不就相当于有了D的东西了吗?再往下传不就都有吗?就成这个样子了,所以说呢,这里边儿,嗯,这个相对的概念,然后第四个呢,先提了一个说叫子类。子类这个直接继承的这个类呢。父类呢,称为叫直接父类,那么间接继承的,间接继承的这个父类称为叫间接父类,哎,先有这样一个概念,然后第五个点,那么子类继承父类以后,那就获取了,实际上啊,就获了直接父类以及所有间接父类中生明的属性和方法。
07:20
以及所有间接父类中声明的。就获取了声明的这个属性和方法,就是这样的一个意思,比如说比如说啊,我们在这个person这个上面呢,咱们再来声明一个声明这个就该生物了。叫creature吧,这样一个类,我分一下,这个对于生物来讲呢,我们就只写一个简单的方法,比如说它有这个叫呼吸的方法。B。我这写一个叫呼吸好这个方法写好以后,嗯,属性当然你也可以加,我们就只是先以这个方法来体会一下,我让这个person呢,去继承于咱们的叫creature。
08:11
继承以后,那creature里边这个呼吸的方法人其实就有了,那我们这个student呢,我又继承了这个person,相当于间接的继承了creature,那么回到我们这个测试层面,我这呢使用这个S1,你看这个B呢就可以掉。这呢,就属于我们间接获取到的这个结构。那就是这样的一个问题。行,那这呢,我们就提到了这样的一个事情,这样一个结构啊,就说完了。
我来说两句