JAVA基础:Super()详解
发布日期:2021-07-26 18:44:04
浏览次数:13
分类:技术文章
本文共 816 字,大约阅读时间需要 2 分钟。
什么是super?
是直接父类对象的引用。可以通过super来访问父类中被子类覆盖的方法或属性。如果没有super存在的问题:
继承中子类可能会重写父类的方法,子类属性可能覆盖父类属性,在此情况下,如何通过子类得到父类属性或方法呢?public class Super { public static void main(String[] args){ new Child().f(); //打印:30 18 }}class Father{ public int age=30; public void f(){ System.out.println(age); }}class Child extends Father{ public int age=18; public void f(){ super.f(); System.out.println(age); }}
可以发现:super直接指向了父类,因此不用担心无法得到父类中被子类覆盖的值或方法。
这里还想强调一点:子类所有构造方法默认调用super(),即默认调用父类构造器。
class A{ public A(){ System.out.println("构造了A"); }}class b extends A{ public b(){ super(); //可写.可不写,默认就有 System.out.println("构造了b"); }}
public class Super { public static void main(String[] args){ new b(); //打印:A b }}
注意:super()中也可以向父类传递参数,传递给构造器的参数,用于父类的初始化。
练习(易错): 由此提出一个问题:上述代码new b()创建了几个对象? 答案:3个,先创建Object()基类-->再创建A类-->再创建b类。
转载地址:https://blog.csdn.net/qq_41877184/article/details/94437097 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
不错!
[***.144.177.141]2024年03月19日 01时59分00秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
拿出跟友商的参数对比结果,给你看!
2019-04-21
浪潮云服务器全球第一 中国云核心装备引领全球
2019-04-21
中国电信翼支付完成A轮引战 混合所有制改革加速落地
2019-04-21
值得你学习的2018年8本最新Python书单,赶紧去学习吧
2019-04-21
Apache顶级开源项目——机器学习库MADlib简介与应用实例
2019-04-21
SVG动态绘制不规则图形
2019-04-21
【译】Vue 的小奇技(第四篇):Vue.js 2.6.0 中的新指令 v-slot
2019-04-21
Android P 加密程序变更
2019-04-21
聊聊短信接口攻击的防范方案
2019-04-21
Spring Cloud Alibaba基础教程:Nacos配置的多文件加载与共享配置
2019-04-21
Spring Cloud Config对特殊字符加密的处理
2019-04-21
[译] 为什么 Flutter 能最好地改变移动开发
2019-04-21
漫画:越挫越勇
2019-04-21
我的2018总结
2019-04-21
WinRAR存在严重的安全漏洞影响5亿用户
2019-04-21
Dockerfile参考
2019-04-21
吐槽Javascript系列二:数组中的splice和slice方法
2019-04-21
django开发-django和tornado的不同
2019-04-21
行内元素有哪些?块级元素有哪些? 空(void)元素有那些?
2019-04-21
220. Contains Duplicate III
2019-04-21