java super父类的父类_合理使用父类的财富——Java中的super
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相关推荐
- python中superclass是什么_深度解析并实现python中的super(转载,好文)
大神半个月的成绩,让我看的叹为观止,建议看原帖地址,会让你对Python的描述符有更强的认识. 原文链接:https://blog.csdn.net/zhangjg_blog/article/deta ...
- java 写文件 权限不够_教你解决Linux系统中JAVA创建文件后权限不足的问题
在作业中,项目使用文件上传. 这个功能很常见. 当Kai Ge今天更改其官方帐户时,他遇到了一个问题,即无法访问下载的文件,也无法通过浏览器访问该文件. 它是怎么发生的? 经过许多问题之后,事实证明这 ...
- java 子类的同名方法_子类父类拥有同名的方法时……
子类父类拥有同名的方法时-- (这个程序是不能运行的) packageyanzheng; public classParentChildTest { public static voidmain(St ...
- java反射获取方法内部_公共技术点之 Java 反射 Reflection
本文为 Android 开源项目源码解析 公共技术点中的 Java 反射 部分 分析者:Mr.Simple,校对者:Trinea,校对状态:未完成 1. 了解 Java 中的反射 1.1 什么是 Ja ...
- java.lang.object源码_第三篇:java.lang.Object 类源码分析
Object所包含的方法如下: ① public Object(); 构造函数: 大部分情况下,类对象的声明,都是通过构造函数完成的(Java中规定:在类定义过程中,对于未定义构造函数的类,默认会有一 ...
- java runtime异常如何解决_成都汇智动力-Java中常见的RunTime异常及异常详解
java.lang.ArithmeticException算术条件异常.譬如:整数除零等.java.lang.ArrayIndexOutOfBoundsException数组索引越界异常.当对数组的索 ...
- java代码删除文件夹_删除文件夹的java类
/** * @author www.nwu.edu.cn MiniRice * @author darkrice@gmail.com * @version 1.2 * */ http://www ...
- java调用打印预览_急求一个用Java实现的打印及打印预览功能的Demo
展开全部 package com.szallcom.tools; import java.awt.BorderLayout; import java.awt.Color; import java.aw ...
- java mysql 是否插入 成功_您如何确定使用Java和MySQL插入或更新是否成功?
我正在使用Java连接到MySQL数据库.我正在尝试向数据库中插入或更新数据. 即使我很确定插入成功,它也会返回false. 根据"执行" API,返回值是"如果第一个结 ...
- java语言用什么编程_使用什么编程语言开发Java?
The Java Language is a language specification – you don't write a language in a language, it's a spe ...
最新文章
- 作者解读ICML接收论文:如何使用不止一个数据集训练神经网络模型?
- 还应该如何实现“模板化函数指针”?
- strncmp用法说明
- boost::fusion::push_back用法的测试程序
- rabbitmq-5-案例2-简单的案例+exchange
- 服务器未进系统如何关机,云服务器关机了怎么开机
- Hdu 4415 Assassin's Creed 【贪心】.cpp
- java不建议用全局变量吗_不要使用全局变量, ThreadLocal也不行
- delphi64位 char数组转换string中文乱码_使用位运算、值交换等方式反转java字符串-共四种方法...
- 科研这条路:一位数学博士给本科生的建议
- 安装gem_Python安装第三方库及常见问题处理方法汇总
- 超越cookie - 使用DOM sessionStorage和localStorage来保存更多信
- 给定数组,查找最小的k个元素或最大的k个元素
- 矿池如何给矿机下发任务
- mysql用户角色权限表的关系_用户、角色、权限表的关系(mysql)
- 计算机视觉——SIFT图像匹配算法
- UDID 和 UUID 的问题
- 人生,原来是个笑话?
- 景观生态学原理| 8 景观生态学与生物多样性保护
- kali linux基本口令_kali linux 基本命令(第一批)
热门文章
- Window server 补丁修复及补丁回滚
- Python-form表单标签
- halcon车牌识别完整源码_基于chineseocr_lite的身份证、火车票、车牌等中文OCR文字识别...
- Mac版本的idea非正常关闭后,idea打开项目大面积报红
- Java 中序列化与反序列化
- 容易被误会的 Kafka 消费者属性 enable.auto.commit
- kafka消息存储与partition副本原理(二)
- python转义字符r 列表_通过在列表前面添加反斜杠来转义列表中的保留字符 - python...
- centos7 禁止ip访问_centos7 防火墙操作 屏蔽ip
- 什么可以代替压感笔_什么是优生五项?一般体检可以代替优生五项检查?医生:不可以!...