美文网首页程序员
Java的三个大招之二:继承

Java的三个大招之二:继承

作者: Java架构学习者 | 来源:发表于2019-03-26 17:30 被阅读0次

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

继承的概念是什么?

继承中如何重写父类的方法?

关键字super如何使用?

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

继承的基本使用.JPG

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

Java中,类只支持单继承不允许多重继承,也就是说一个类只能有一个父类。

多个类可以继承同一个父类。

可以多层继承,即一个类的父类可以去继承另外的父类。

Java中的子列和父类只是一种相对概念。

接下来看第二个问题,继承中重写父类方法是怎么回事。

我们知道继承关系中,子类会自动继承父类中定义的方法,但有时在子类需要对继承的方法进行修改,即重写父类方法。好比父亲的理想,如果儿子不喜欢,可以去追求自己的梦想。

上面代码中,Dog类继承了Animal类中的shout方法,调用时会打印“动物的叫声”,这明显不是描述一种具体动物的叫声,Dog发出的叫声应该是“汪汪汪。。。”为了解决这个问题,可以在Dog类中重写父类Animal的shout()方法,具体代码如下:

继承中重写父类方法.JPG

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

最后来看第三个问题,如何正确使用super关键字?

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

使用super关键字调用父类的成员变量和方法,格式如下

super.成员变量;

super.成员方法({参数1,参数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/zjsnvqtx.html