zoukankan      html  css  js  c++  java
  • 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,先有父类,再有子类。具体有多少子类,并不确定,可能还有教师类...

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

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

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

  • 相关阅读:
    Objective-C中的Block回调模式
    [LINUX-02]linux内存管理
    Linux设备模型(8)_platform设备
    Face Alignment
    dlib 人脸识别论文 One Millisecond Face Alignment with an Ensemble of Regression Trees
    linux内核函数kmap_atomic用法
    [LINUX-01]对比LINUX和CORTEX-M启动流程
    -02-建立PetaLinux工程
    linux内核启动流程(文章最后流程图)
    uboot笔记:uboot命令分析+实现
  • 原文地址:https://www.cnblogs.com/wsw-bk/p/7721757.html
Copyright © 2011-2022 走看看