单重继承 java_JAVA-初步认识-第八章-继承-单继承和多重继承

一.

说完了继承的基本概述之后,了解一下在java中它的体现方式。

22e7fd2f81fa3d93b980ea652f25e69b.png

大家都知道java来自于c++,c++有多继承,java对其中的多继承进行了改良。为什么不直接支持多继承呢?要牢记,这个原因在后面可以解决很多问题。

二.

c9ce88694026101a30ad3716acece8cd.png

观看下面的截图,截图表现的是多继承关系,就是说C同时具备A和B里面的东西。

04507ecc2f07adb1d060c5d2e4f43044.png

相较于多继承带来的好处,java更注重多继承带来的问题,因此把多继承改良掉了。

现在来解释为什么不直接支持多继承。

28c8d19d666c166b0e25b54146358830.png

以上面截图中的例子来讲解,为什么不支持多继承。C是上面A和B的子类,也就具备A和B中的方法,也就是通过匿名对象,调用A和B中的方法。子类拿到了父类中的两个方法,但是调用show()的时候,不知道调用哪一个show(),这就是不确定。

两个类中有相同的方法时(这里的相同说的是函数声明相同),不知道运行哪一个。这就是java不直接支持多继承的原因,因为多个父类中有相同成员,会产生调用的不确定性。

三.

ab4cf8705f370604bea27e3fdb34fd5a.png

bcb7675fff3aef7bc2bcbeb96da46e9a.png

截图所描述的就是多继承。依我目前的认识来看,从A到D,A中所包含的共性成员是最多的,然后逐层递减,但是设置这么多层的继承,是否有这个必要?还是说在实际应用中,对层数有所要求?

上面的截图称之为继承体系,父类是在不断地向上抽取过程中产生的。

A是怎么来的?分析一下,不断向上抽取出来的,A里面定义的,是这个体系里面,最继承的内容,内容最少。因为它不断地向上抽取,抽取是共性的。因此,整个体系中最基本的功能都在A中。→这里的分析,体现出我们对于多层继承的不理解,对于继承二字也不理解。首先,继承意味着所有都拥有,也就是C中的成员,D中都拥有,往上是一个抽取的过程。核心在继承二字。

当想要使用一个体系的时候,体系涉及的对象很多,这些对象之间存在的一些关系,因为功能都很相似,不断抽取,形成体系。那就意味着,想要使用一门技术,就要使用一个体系。我想使用这个体系的时候,应该查阅最上面的类。因为最上面的定义的是这个体系中最共性,最基本的功能。查阅完顶层类之后,最终是要拿对象调用方法,这里有五个类,创建哪个对象靠谱?有人说看完A了,直接创建A类对象就行了。这么做是可以的,但是有两点问题要注意,一是A能不能创建对象?二是用A创建对象,使用的成员太少,不如使用下面的类,继续往下推的话,采用D类做对象最合适,D不仅可以使用A的对象,还可以使用自己特有的方法。

Java支持多层继承,也就是继承体系,

548618034304c00d8e307c8a7645db0f.png

以后使用继承的时候,记住这两点就可以了。同时后面学习集合和IO时,也是这两点。

总结:讲解了一下,多继承的特点。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值