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

    一.

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

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

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

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

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

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

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

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

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

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

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

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

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

  • 相关阅读:
    linux shell编程学习笔记(二) --- grep命令
    linux shell编程学习笔记(一)---通配符,元字符
    正则表达式
    leetcode problem 37 -- Sudoku Solver
    leetcode problem 33 -- Search in Rotated Sorted Array
    linux 终端快捷键
    linux中的sticky bit
    集中不等式
    Python os模块实例之遍历目录及子目录指定扩展名的文件
    Python模块之ConfigParser
  • 原文地址:https://www.cnblogs.com/wsw-bk/p/7735110.html
Copyright © 2011-2022 走看看