• JAVA-初步认识-第八章-继承-概述


    一.

    面向对象的第二个特征-继承,之前讲述的是封装。

    什么是继承?通过一个例子来介绍一下,

    之所以学习面向对象,是为了描述事物,现在准备描述一下学生。

    代码写的简单,就不写private,对外提供方法访问,(其实,类中的成员变量都要用private修饰的),

    观看截图中的代码,对于private的作用进行一个分析。好像是没有private修饰的成员变量,在创建对象类中可以直接new对象,可以直接调用成员变量和成员函数。

    在上面的截图中,有两个描述类,类中的成员变量很多都是一样的。我们最开始接触程序时,首先要考虑的就是提高复用性的问题。

    一般的解决办法就是将相同的代码抽离出来,抽离出来放在哪儿呢?我们知道java里面是通过类来封装代码的。

    学生和工人他们都有姓名和年龄,他们都属于什么样的共性内容呢?比如说他们都属于人,人是具备了一些最基本的属性的,姓名和年龄。这么一定义完以后,(看下面的截图),有了抽离出来的person类之后,学生和工人里面的成员变量就可以不写了。

    一旦抽离出来之后,学生就不能使用姓名和年龄,因为属于不同的类,要想使用,就得创建person的对象。

    但是,最初这些变量都是从学生中抽离出来的。

    现在可以这么做,我们不用去创建person对象,我们只需要学生和person产生一些关系,就可以具备name和age这样的内容。

    现在我们要说的就是产生关系,产生什么关系才可以完成这个动作呢?我们只要让学生和person之间产生继承关系就可以。

    换句话说,如果学生变成了person的儿子,就能具备person里面的内容,这就是我们说的继承,让类与类之间产生关系。

    当学生继承了person之后,它就相当于获取到了person里面的内容,相当于学生也有了姓名和年龄。

    工人想要获取姓名和年龄的变量,也要继承person类的内容,相当于工人里面也有了姓名和年龄。

    经过上面的抽离和继承之后,我们接着对程序进行了运算,DOS结果显示是可以的。学生里面并没有姓名和年龄,通过继承,使得它具备了person类的内容,完成了程序的调用。

    有了继承以后,学生类多了一个名称,子类,person也多了个名称,父类。当然,由于翻译的原因,这里的名称还有一些其他的叫法。

    上面讲述了继承的基本概念。

    二.

    继承的好处:

    没继承没多态。

    我们都知道对象产生以后,对象之间都存在关系,我们在不断地创建对象和使用对象,并维护着对象之间的关系。

    这就是我们开发的最终的核心内容。(这段话没看懂,对象之间存在关系?怎么体现的?)

    下面通过内存图解,来看一下person是怎么来的。

    描述类有什么特点,具体实例共性内容的抽取,代表着这类事物具备内容。类本身是种抽象。

     

    分析了学生和工人,发现他们有共性。(姓名和年龄的共性是在分析时发现的,不是在书写),先是对同一类对象进行了抽象,接着发现类之间还有共性,接着继续向上抽取。学生和工人都属于人的一种,人具备了基本属性,姓名和年龄。人不一定具备学习,学生具备,工人不具备,只能定义共性的东西。学习方法和工作方法是各自类中特有的方法,person类是向上抽取的共性内容。

    我们开发时,分析结束后,先写的是person,先有父类,再有子类。具体有多少子类,并不确定,可能还有教师类...

    截图中,横线下面部分是现实生活中的对象,横线上面部分是我们在分析设计过程中产生的。如果把它体现为一个类的形式的话,就是

    一个最基本的类的继承关系图。下面两是子类,上面是父类。父类是怎么来的,是不断向上抽取出来的,是在分析过程中找出其共性不断抽取而来的。

    这就是简单介绍一下继承的特点,一旦有了继承,就不再需要重复定义一些共性的内容。

  • 相关阅读:
    Selenium+Pytest自动化测试框架实战
    WPF性能优化经验总结
    C#跨窗体调用控件
    C# lock
    硬实时系统,到底多硬才算Hard Real Time System
    [GPIO]推荐一种超简单的硬件位带bitband操作方法,让变量,寄存器控制,IO访问更便捷,无需用户计算位置
    【STM32F407的DSP教程】第50章 STM32F407的样条插补实现,波形拟合丝滑顺畅
    实战技能分享,如何让工程代码各种优化等级通吃,含MDK AC5,AC6,IAR和GCC
    【深入探讨】DMA到底能不能起到加速程序执行的作用,DMA死等操作是否合理,多个DMA数据流同时刷是否处理过来
    《安富莱嵌入式周报》第238期:2021.11.012021.11.07
  • 原文地址:https://www.cnblogs.com/wsw-bk/p/7721757.html
Copyright © 2020-2023  润新知