Java中的继承让类之间有了父子关系。子类可以继承父类开放给自己的变量、方法等等。

在子类可以直接使用父类的这些变量或者方法等等。

就像下面图1的代码这样。

图1

这段代码中在子类对象可以直接使用父类的methodFromFather方法。

不过继承还有一个特点就是子类可以重写父类的方法。那如果上面的代码子类Son重写了父类的methodFromFather方法后,main方法执行的就是重写后的方法了。

图2

像上面这样图2这样修改了图1代码,执行的结果会是输出“子类重写的方法”。

图3

如果这时候我们就想要调用父类的methodFromFather方法,有办法吗?

这时候就该super关键字来登场,它就是上面这个问题的解决者。

图4

如图4代码,在子类中新增了一个方法callMethodFromFather,方法体内部通过super关键字调用了methodFromFather。这样就能调用到父类的方法了。执行观察一下是不是真的能做到呢。

图5

super其实就相当于是在子类中的一个父类对象的引用,他除了可以访问调用父类的方法之外,还可以访问调用父类的成员变量和构造方法。

先来看看怎么通过super来访问父类的成员变量吧。

图6

如图6代码,父类和子类都有成员变量name,子类想要访问父类的成员变量name,就可以通过super来访问。执行验证一下。

图7

再来看看怎么通过super访问父类的构造方法吧。

图8

从图8的代码中可以看出来子类通过super来访问调用父类的构造方法。

先来看看执行效果是什么样。

通过代码和执行结果,我们可以看出来,如果子类的构造方法中没有显示的去调用父类的构造方法时,会默认调用执行父类的无参的构造方法。如果显示的调用父类的构造方法,就会执行对应参数列表的构造方法了。

这里有一点需要注意,子类构造方法中调用父类构造方法的语句只能出现在方法的第一句。

这样,子类就可以通过super来使用父类的成员变量、构造方法、普通方法这些财富了。

今天的内容就这样了。

java super父类的父类_合理使用父类的财富——Java中的super相关推荐

  1. python中superclass是什么_深度解析并实现python中的super(转载,好文)

    大神半个月的成绩,让我看的叹为观止,建议看原帖地址,会让你对Python的描述符有更强的认识. 原文链接:https://blog.csdn.net/zhangjg_blog/article/deta ...

  2. java 写文件 权限不够_教你解决Linux系统中JAVA创建文件后权限不足的问题

    在作业中,项目使用文件上传. 这个功能很常见. 当Kai Ge今天更改其官方帐户时,他遇到了一个问题,即无法访问下载的文件,也无法通过浏览器访问该文件. 它是怎么发生的? 经过许多问题之后,事实证明这 ...

  3. java 子类的同名方法_子类父类拥有同名的方法时……

    子类父类拥有同名的方法时-- (这个程序是不能运行的) packageyanzheng; public classParentChildTest { public static voidmain(St ...

  4. java反射获取方法内部_公共技术点之 Java 反射 Reflection

    本文为 Android 开源项目源码解析 公共技术点中的 Java 反射 部分 分析者:Mr.Simple,校对者:Trinea,校对状态:未完成 1. 了解 Java 中的反射 1.1 什么是 Ja ...

  5. java.lang.object源码_第三篇:java.lang.Object 类源码分析

    Object所包含的方法如下: ① public Object(); 构造函数: 大部分情况下,类对象的声明,都是通过构造函数完成的(Java中规定:在类定义过程中,对于未定义构造函数的类,默认会有一 ...

  6. java runtime异常如何解决_成都汇智动力-Java中常见的RunTime异常及异常详解

    java.lang.ArithmeticException算术条件异常.譬如:整数除零等.java.lang.ArrayIndexOutOfBoundsException数组索引越界异常.当对数组的索 ...

  7. java代码删除文件夹_删除文件夹的java类

    /** * @author www.nwu.edu.cn MiniRice * @author darkrice@gmail.com * @version    1.2 * */ http://www ...

  8. java调用打印预览_急求一个用Java实现的打印及打印预览功能的Demo

    展开全部 package com.szallcom.tools; import java.awt.BorderLayout; import java.awt.Color; import java.aw ...

  9. java mysql 是否插入 成功_您如何确定使用Java和MySQL插入或更新是否成功?

    我正在使用Java连接到MySQL数据库.我正在尝试向数据库中插入或更新数据. 即使我很确定插入成功,它也会返回false. 根据"执行" API,返回值是"如果第一个结 ...

  10. java语言用什么编程_使用什么编程语言开发Java?

    The Java Language is a language specification – you don't write a language in a language, it's a spe ...

最新文章

  1. 作者解读ICML接收论文:如何使用不止一个数据集训练神经网络模型?
  2. 还应该如何实现“模板化函数指针”?
  3. strncmp用法说明
  4. boost::fusion::push_back用法的测试程序
  5. rabbitmq-5-案例2-简单的案例+exchange
  6. 服务器未进系统如何关机,云服务器关机了怎么开机
  7. Hdu 4415 Assassin's Creed 【贪心】.cpp
  8. java不建议用全局变量吗_不要使用全局变量, ThreadLocal也不行
  9. delphi64位 char数组转换string中文乱码_使用位运算、值交换等方式反转java字符串-共四种方法...
  10. 科研这条路:一位数学博士给本科生的建议
  11. 安装gem_Python安装第三方库及常见问题处理方法汇总
  12. 超越cookie - 使用DOM sessionStorage和localStorage来保存更多信
  13. 给定数组,查找最小的k个元素或最大的k个元素
  14. 矿池如何给矿机下发任务
  15. mysql用户角色权限表的关系_用户、角色、权限表的关系(mysql)
  16. 计算机视觉——SIFT图像匹配算法
  17. UDID 和 UUID 的问题
  18. 人生,原来是个笑话?
  19. 景观生态学原理| 8 景观生态学与生物多样性保护
  20. kali linux基本口令_kali linux 基本命令(第一批)

热门文章

  1. Window server 补丁修复及补丁回滚
  2. Python-form表单标签
  3. halcon车牌识别完整源码_基于chineseocr_lite的身份证、火车票、车牌等中文OCR文字识别...
  4. Mac版本的idea非正常关闭后,idea打开项目大面积报红
  5. Java 中序列化与反序列化
  6. 容易被误会的 Kafka 消费者属性 enable.auto.commit
  7. kafka消息存储与partition副本原理(二)
  8. python转义字符r 列表_通过在列表前面添加反斜杠来转义列表中的保留字符 - python...
  9. centos7 禁止ip访问_centos7 防火墙操作 屏蔽ip
  10. 什么可以代替压感笔_什么是优生五项?一般体检可以代替优生五项检查?医生:不可以!...