笔记(二十九)Java:super关键字
回顾一下this关键字:
- this能出现在实例方法和构造方法中。
- this的语法是:“this.”、“this()”
- this不能使用在静态方法中。
- this. 大部分情况下是可以省略的。
- this.什么时候不能省略呢? 在区分局部变量和实例变量的时候不能省略。
- this() 只能出现在构造方法第一行,通过当前的构造方法去调用“本类”中其它的构造方法,目的是:代码复用。
super关键字:
- super能出现在实例方法和构造方法中。
- super的语法是:“super.”、“super()”
- super不能使用在静态方法中。
- super. 大部分情况下是可以省略的。
- super.什么时候不能省略呢? 在区分父类变量和子类变量的时候不能省略。(父中有,子中又有,如果想在子中访问“父的特征”,super. 不能省略。)
- super() 只能出现在构造方法第一行,通过当前的构造方法去调用“父类”中其它的构造方法,目的是:创建子类对象的时候,先初始化父类型特征。
思考:无论方法第一行是否是super()语句,super()也一定执行? 对。如果调用this(),那么在this()调用的本类方法中,第一行也会默认有super(),去调用父类中的构造方法。(最终都会进入到Object类)
在java语言中不管是是new什么对象,最后老祖宗的Object类的无参数构造方法一定会执行。(Object类的无参数构造方法是处于“栈顶部”)
栈顶的特点:最后调用,但是最先执行结束。(后进先出原则)
super的作用
此时执行结果:
将A类的无参构造改为有参构造,会报如下错误:
为什么改了A类,会在B类中报错?因为B类中构造方法第一行,会默认有个super语句。
重要的结论:
当一个构造方法第一行,既没有this()又没有super()的话,默认会有一个super();表示通过当前子类的构造方法调用父类的无参数构造方法。所以必须保证父类的无参数构造方法是存在的。
注意:this()和super() 不能共存,它们都是只能出现在构造方法第一行。
例子:
super(实际参数列表)的使用![](/assets/blank.gif)
![](/assets/blank.gif)
注意:在构造方法执行过程中一连串调用了父类的构造方法,父类的构造方法又继续向下调用它的父类的构造方法,但是实际上对象只创建了一个。
总结:super关键字代表什么? super关键字代表的就是“当前对象”的那部分父类型特征。
- super.属性名 【访问父类的属性】
- super.方法名(实参) 【访问父类的方法】
- super(实参) 【调用父类的构造方法】
笔记(二十九)Java:super关键字相关推荐
- 【OpenGL】笔记二十九、抗锯齿(MSAA)
1. 流程 经过之前的教程,我们目前渲染出来的画面已经有了足够的表现力,但是还是有一些缺陷,比如当我们的渲染画面分辨率跟不上屏幕分辨率时,在我们渲染的图形边缘一些比较严重的锯齿效果就会显现: 自然,这 ...
- Java学习笔记二十五:Java面向对象的三大特性之多态
Java面向对象的三大特性之多态 一:什么是多态: 多态是同一个行为具有多个不同表现形式或形态的能力. 多态就是同一个接口,使用不同的实例而执行不同操作. 多态性是对象多种表现形式的体现. 现实中,比 ...
- Java学习笔记二十六:Java多态中的引用类型转换
Java多态中的引用类型转换 引用类型转换: 1.向上类型转换(隐式/自动类型转换),是小类型到大类型的转换: 2.向下类型转换(强制类型转换),是大类型到小类型的转换: 3.instanceof运算 ...
- C++语法学习笔记二十九: 详解decltype含义,decltype主要用途
实例代码 // 详解decltype含义,decltype主要用途#include <iostream> #include <functional> #include < ...
- Linux学习笔记二十九——http服务
基础概念: HTTP:Hyper Text Transfer Protocol 超文本传输协议 versions: HTTP/0.9:只接收GET一种请求方法,只支持纯文本 HTTP/1.0:支持PU ...
- 嵌入式Linux驱动笔记(二十九)------内存管理之伙伴算法(Buddy)分析
你好!这里是风筝的博客, 欢迎和我一起交流. 我们知道,在一个通用操作系统里,频繁申请内存释放内存都会出现一个非常著名的内存管理问题:内存碎片. 学过操作系统的都知道,有很多行之有效的方法(比如:记录 ...
- opencv学习笔记二十九:SIFT特征点检测与匹配
SIFT(Scale-invariant feature transform)是一种检测局部特征的算法,该算法通过求一幅图中的特征点(interest points,or corner points) ...
- Mr.J-- jQuery学习笔记(二十九)--属性操作方法(获取属性判断)
获取 attr() <span class="span1" name="it666"></span> <span class=&q ...
- 校友会小程序开发笔记二十九:小程序启动性能评测与优化(2)
校友会小程序定位是大量校友的社交类应用,因此对于性能,用户体验,交互体验要求很高,对于小程序的打开,流畅性, 数据的渲染都必须做尽可能的优化 运行时性能 setData setData 是校友会小程序 ...
- opencv笔记二十九(轮廓发现)findContours(t2, contour, hierarchy, RETR_TREE, CHAIN_APPROX_SIMPLE, Point(0, 0));
API: cv::findContours( //发现轮廓 InputOutputArray binImg, // 输入图像,非0的像素被看成1,0的像素值保持不变,8-bit OutputArra ...
最新文章
- 通俗介绍拉普拉斯变换,傅里叶变换和z变换
- SQL小技巧系列 --- 行转列合并
- Linux文件目录结构2
- 中如何调取api_API(接口)是什么
- 【机器学习】贝叶斯整理
- 用OKR拆解法,做产品规划
- 旷视开源了一套图像检索和ReID的PyTorch库
- RK3399Pro Android Rock-X 人工智能开发系列(2)
- Python基础_字符串的格式化
- “你需要TrustedInstaller提供的权限才能对此文件进行更改” 解决方案
- win10 远程桌面卡顿_主编教你win10系统使用远程桌面卡顿的步骤
- java框架难吗_java框架难学吗?怎样才能学好java框架?
- 2022-2028年全球及中国点胶枪行业发展现状调研及投资前景分析
- 零点起飞学HTML+CSS (顼宇峰) PDF扫描版
- Qt实现柱状图、饼状图、折线图、曲线图
- R语言:使用ComplexHeatmap包绘制热图
- 有个大神级女朋友是什么体验
- 阿迪达斯进博会展示首款碳足迹低于3千克运动鞋;霍尼韦尔携30余项产品和解决方案亮相进博会 | 美通社头条...
- uniapp 微信小程序 控制台警告和错误处理
- Vue中使用SVG-ICON
热门文章
- 广州求职指南(2004版)
- 计算机通信地址【图解TCP/IP(笔记六)】
- access随系统启动的宏,Access的自动运行宏的宏名是______。
- 【ODPS】利用阿里云ODPS作业进行圆周率Pi的计算
- SEO原创不等同于有价值
- C. Bouncing Ball(从后往前的前缀和)
- 计算机电池管理系统,使用 Simulink 和基于模型的设计开发电池管理系统
- 手机卡顿只清理垃圾是不行的,关掉这个开关,比新手机还好用
- 软件测试必问必背面试题,开始就项目经历项目业务......
- 【渝粤教育】国家开放大学2018年春季 0631-22T动物常见病防治 参考试题