zoukankan      html  css  js  c++  java
  • JAVA-初步认识-第八章-继承-单继承和多重继承

    一.

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

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

    二.

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

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

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

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

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

    三.

    截图所描述的就是多继承。依我目前的认识来看,从A到D,A中所包含的共性成员是最多的,然后逐层递减,但是设置这么多层的继承,是否有这个必要?还是说在实际应用中,对层数有所要求?
    上面的截图称之为继承体系,父类是在不断地向上抽取过程中产生的。

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

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

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

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

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

  • 相关阅读:
    高精度计算
    高精度除以低精度
    P1258 小车问题
    POJ 2352 stars (树状数组入门经典!!!)
    HDU 3635 Dragon Balls(超级经典的带权并查集!!!新手入门)
    HDU 3938 Portal (离线并查集,此题思路很强!!!,得到所谓的距离很巧妙)
    POJ 1703 Find them, Catch them(确定元素归属集合的并查集)
    HDU Virtual Friends(超级经典的带权并查集)
    HDU 3047 Zjnu Stadium(带权并查集,难想到)
    HDU 3038 How Many Answers Are Wrong(带权并查集,真的很难想到是个并查集!!!)
  • 原文地址:https://www.cnblogs.com/wsw-bk/p/7723993.html
Copyright © 2011-2022 走看看