美文网首页Java技术文章Java学习笔记
Java的三个大招之二:继承

Java的三个大招之二:继承

作者: 大虾很忙 | 来源:发表于2017-02-23 22:22 被阅读174次

继承,从世俗的角度来解释便是子女得到父辈的财产或物品。程序中,继承是指两个类的从属关系,它可以使多种事物之间形成一种关系体系。例如贵宾和泰迪都是属于宠物犬,程序中便可以描述为贵宾和泰迪继承自动物。这篇要文章主要理清三个问题:

  1. 继承的概念是什么?
  2. 继承中如何重写父类的方法?
  3. 关键字super如何使用?

先看第一个问题,在Java中类的继承是指在一个现有类的基础上去构建一个新的类,构建出来的类被称作子类,现有的类被称作父类,子类会自动拥有父类所有课继承的属性和方法。同时,程序中通常用extends关键字来声明一个继承另一个类,下面就通过一个案例来演示:

继承的基本使用.JPG

上面代码的运行结果是“动物的叫声”和“我的名字叫贵宾”。其中Dog类通过extends继承了Animal类,这样Dog类便是Animal类的子类。从运行结果可以看出,子类虽然没有定义name属性和shout方法,但是却能访问这两个成员,这也就说明了子类在继承父类的时候,会自动拥有父类的所有成员。但也有一些问题需要注意下:

  1. Java中,类只支持单继承不允许多重继承,也就是说一个类只能有一个父类。
  2. 多个类可以继承同一个父类。
  3. 可以多层继承,即一个类的父类可以去继承另外的父类。
  4. Java中的子列和父类只是一种相对概念。

接下来看第二个问题,继承中重写父类方法是怎么回事。
我们知道继承关系中,子类会自动继承父类中定义的方法,但有时在子类需要对继承的方法进行修改,即重写父类方法。好比父亲的理想,如果儿子不喜欢,可以去追求自己的梦想。
上面代码中,Dog类继承了Animal类中的shout方法,调用时会打印“动物的叫声”,这明显不是描述一种具体动物的叫声,Dog发出的叫声应该是“汪汪汪。。。”为了解决这个问题,可以在Dog类中重写父类Animal的shout()方法,具体代码如下:

继承中重写父类方法.JPG

运行结果是“汪汪汪。。。”。从运行结果可以看到,在调用Dog类对象的shout方法是,只会调用子类重写后的方法。

最后来看第三个问题,如何正确使用super关键字?
从上一个代码中可以看到,当子类重写父类的方法后,子类对象将无法访问父类被重写的方法,为了解决这个问题,Java中专门提供一个super关键字用于访问父类的成员。super的作用主要体现在两个方面:

  1. 使用super关键字调用父类的成员变量和方法,格式如下
    super.成员变量;
    super.成员方法({参数1,参数2...});
  2. 使用super关键字调用父类构造方法,格式如下
    super.({参数1,参数2...});

相关文章

  • Java的三个大招之二:继承

    继承,从世俗的角度来解释便是子女得到父辈的财产或物品。程序中,继承是指两个类的从属关系,它可以使多种事物之间形成一...

  • Java的三个大招之二:继承

    继承,从世俗的角度来解释便是子女得到父辈的财产或物品。程序中,继承是指两个类的从属关系,它可以使多种事物之间形成一...

  • JavaSE 基础学习之三 ——Java 的继承与接口

    接上文《JavaSE 基础学习之二 —— Java 的部分基本语法》 三. Java 的继承与接口 1. java...

  • Android面试要点

    整个面试题分为三个部分:Java、Android和项目经验。 1 Java技术 1.1 Java基础 对抽象、继承...

  • JAVA注解的继承性

    摘要 本文从三个方面介绍java注解的“继承性”: 基于元注解@Inherited,类上注解的继承性 基于类的继承...

  • Java之面向对象详解

    1.Java面向对象的三个特征与含义 继承:继承是从已有类得到继承信息创建新类的过程。提供继承信息的类被称为父类(...

  • Tomcat之Http11Processor源码分析

    Http11Processor继承关系 java.nio.ByteBuffer ByteBuffer有三个属性值:...

  • Java继承

    一、Java继承详解 Java继承目录:1.为什么要”继承“?2.继承的类型2.1 单继承2.2 多重继承2.3 ...

  • java事件机制

    java事件机制包含三个部分:事件、事件监听器、事件源。 事件一般继承自java.util.EventObject...

  • Java继承

    Java继承 一、继承类型 Java不支持多继承,但是支持多重继承 二、继承的特性 子类拥有父类非 private...

网友评论

本文标题:Java的三个大招之二:继承

本文链接:https://www.haomeiwen.com/subject/gzxiwttx.html