zoukankan      html  css  js  c++  java
  • JAVA-初步认识-第八章-继承-定义继承

    一.

    接下来描述继承什么时候使用?
    产生关系,提高复用性。什么时候写继承呢?

    有这么一种思想,A有我们所需要的功能,继承它,我们就不需要定义了,这可以提高代码复用性。一定要注意,千万不要为了提高复用性,而继承。

    写继承是要依赖于关系的,没关系就不需要继承。

    先说一下为了提高复用性而使用继承的弊端或者误区,观看下面的截图。定义完DemoA和DemoB后,我们发现都具有show1(),那么直接用B继承A,这样一来,B中就不需要定义show1()方法了。但是show2()是B功能吗?如果不是,就不应该进来(由于继承的关系,所有的成员都一起来了),这就是问题,这种继承是不应该存在的。仅仅是为了拿别人的东西而继承。这种继承不允许,太危险。

    那应该怎么办呢?之所以会有这样的想法,是因为DemoA和DemoB里面有共性内容,本来A和B是两兄弟,现在让他们成为父子,这不太合适。两人找同一个父类,就完事了。对于两者相同的部分,进行抽取重新建类再继承,显得更为合理。

    如果DemoA中的方法,DemoB全都具备,那么就产生了继承。

    这时再来看继承,有点像集合的意思,不是要求交叉,而是要求包含。

    怎么看待所属关系,狼和狗都属于犬科,它们是犬科中的一种。那我们就可以说,狼和狗这样的事物就可以继承犬科,它们具备犬科所有的特征,这就存在着继承。

    继承还有所发展,不光有基础的,还有更多的其他的

    判断到底是否是一种?可以这么做,直接操作继承,然后被继承的类,或者说父类中的功能(继承特指功能么?)是否子类中都应该具备。如果有些,它不应该具备,那就不存在继承。这种方法比较笨,先要写成继承,然后再去判断。

    解析:剖析一下父类和子类。从已有的讲解来看,父类中的内容要比子类中少,父类是抽取形成的。但是抛开这些代码内容而言,父类所能包含的意义更广,因为描述比较少,显得模糊,这样就能代表更多的东西。

    狗,狼抽取一下形成了犬科,老虎,狮子抽取一下,形成了猫科。如果再将猫科和犬科往上抽取,形成就是哺乳动物。

    父类比较模糊,子类比较具体。我们要找到对象之间的关系,为什么说的是对象

  • 相关阅读:
    HDU 4714:Tree2cycle 树形DP
    HDU 4679:Terrorist’s destroy 树形DP
    as 和is的区别
    关于父类引用指向子类对象
    C# new的用法
    Mvc中把list从View传入Controller
    Html.TextBoxFor三元判断
    ref 和out的用法以及区别
    c# datatable list 相互转换
    jquery trigger伪造a标签的click事件取代window.open方法
  • 原文地址:https://www.cnblogs.com/wsw-bk/p/7735110.html
Copyright © 2011-2022 走看看