回顾一下this关键字:

  1. this能出现在实例方法和构造方法中。
  2. this的语法是:“this.”、“this()”
  3. this不能使用在静态方法中。
  4. this. 大部分情况下是可以省略的。
  5. this.什么时候不能省略呢? 在区分局部变量和实例变量的时候不能省略。
  6. this() 只能出现在构造方法第一行,通过当前的构造方法去调用“本类”中其它的构造方法,目的是:代码复用。

super关键字:

  1. super能出现在实例方法和构造方法中。
  2. super的语法是:“super.”、“super()”
  3. super不能使用在静态方法中。
  4. super. 大部分情况下是可以省略的。
  5. super.什么时候不能省略呢? 在区分父类变量和子类变量的时候不能省略。(父中有,子中又有,如果想在子中访问“父的特征”,super. 不能省略。)
  6. super() 只能出现在构造方法第一行,通过当前的构造方法去调用“父类”中其它的构造方法,目的是:创建子类对象的时候,先初始化父类型特征。

思考:无论方法第一行是否是super()语句,super()也一定执行?                                                     对。如果调用this(),那么在this()调用的本类方法中,第一行也会默认有super(),去调用父类中的构造方法。(最终都会进入到Object类)

在java语言中不管是是new什么对象,最后老祖宗的Object类的无参数构造方法一定会执行。(Object类的无参数构造方法是处于“栈顶部”)

栈顶的特点:最后调用,但是最先执行结束。(后进先出原则)

super的作用

此时执行结果:

将A类的无参构造改为有参构造,会报如下错误:

为什么改了A类,会在B类中报错?因为B类中构造方法第一行,会默认有个super语句。

重要的结论:
        当一个构造方法第一行,既没有this()又没有super()的话,默认会有一个super();表示通过当前子类的构造方法调用父类的无参数构造方法。所以必须保证父类的无参数构造方法是存在的。

注意:this()和super() 不能共存,它们都是只能出现在构造方法第一行。

例子:

super(实际参数列表)的使用

注意:在构造方法执行过程中一连串调用了父类的构造方法,父类的构造方法又继续向下调用它的父类的构造方法,但是实际上对象只创建了一个。

总结:super关键字代表什么? super关键字代表的就是“当前对象”的那部分父类型特征。

  • super.属性名            【访问父类的属性】
  • super.方法名(实参)  【访问父类的方法】
  • super(实参)              【调用父类的构造方法】

笔记(二十九)Java:super关键字相关推荐

  1. 【OpenGL】笔记二十九、抗锯齿(MSAA)

    1. 流程 经过之前的教程,我们目前渲染出来的画面已经有了足够的表现力,但是还是有一些缺陷,比如当我们的渲染画面分辨率跟不上屏幕分辨率时,在我们渲染的图形边缘一些比较严重的锯齿效果就会显现: 自然,这 ...

  2. Java学习笔记二十五:Java面向对象的三大特性之多态

    Java面向对象的三大特性之多态 一:什么是多态: 多态是同一个行为具有多个不同表现形式或形态的能力. 多态就是同一个接口,使用不同的实例而执行不同操作. 多态性是对象多种表现形式的体现. 现实中,比 ...

  3. Java学习笔记二十六:Java多态中的引用类型转换

    Java多态中的引用类型转换 引用类型转换: 1.向上类型转换(隐式/自动类型转换),是小类型到大类型的转换: 2.向下类型转换(强制类型转换),是大类型到小类型的转换: 3.instanceof运算 ...

  4. C++语法学习笔记二十九: 详解decltype含义,decltype主要用途

    实例代码 // 详解decltype含义,decltype主要用途#include <iostream> #include <functional> #include < ...

  5. Linux学习笔记二十九——http服务

    基础概念: HTTP:Hyper Text Transfer Protocol 超文本传输协议 versions: HTTP/0.9:只接收GET一种请求方法,只支持纯文本 HTTP/1.0:支持PU ...

  6. 嵌入式Linux驱动笔记(二十九)------内存管理之伙伴算法(Buddy)分析

    你好!这里是风筝的博客, 欢迎和我一起交流. 我们知道,在一个通用操作系统里,频繁申请内存释放内存都会出现一个非常著名的内存管理问题:内存碎片. 学过操作系统的都知道,有很多行之有效的方法(比如:记录 ...

  7. opencv学习笔记二十九:SIFT特征点检测与匹配

    SIFT(Scale-invariant feature transform)是一种检测局部特征的算法,该算法通过求一幅图中的特征点(interest points,or corner points) ...

  8. Mr.J-- jQuery学习笔记(二十九)--属性操作方法(获取属性判断)

    获取 attr() <span class="span1" name="it666"></span> <span class=&q ...

  9. 校友会小程序开发笔记二十九:小程序启动性能评测与优化(2)

    校友会小程序定位是大量校友的社交类应用,因此对于性能,用户体验,交互体验要求很高,对于小程序的打开,流畅性, 数据的渲染都必须做尽可能的优化 运行时性能 setData setData 是校友会小程序 ...

  10. opencv笔记二十九(轮廓发现)findContours(t2, contour, hierarchy, RETR_TREE, CHAIN_APPROX_SIMPLE, Point(0, 0));

    API: cv::findContours( //发现轮廓 InputOutputArray  binImg, // 输入图像,非0的像素被看成1,0的像素值保持不变,8-bit OutputArra ...

最新文章

  1. 通俗介绍拉普拉斯变换,傅里叶变换和z变换
  2. SQL小技巧系列 --- 行转列合并
  3. Linux文件目录结构2
  4. 中如何调取api_API(接口)是什么
  5. 【机器学习】贝叶斯整理
  6. 用OKR拆解法,做产品规划
  7. 旷视开源了一套图像检索和ReID的PyTorch库
  8. RK3399Pro Android Rock-X 人工智能开发系列(2)
  9. Python基础_字符串的格式化
  10. “你需要TrustedInstaller提供的权限才能对此文件进行更改” 解决方案
  11. win10 远程桌面卡顿_主编教你win10系统使用远程桌面卡顿的步骤
  12. java框架难吗_java框架难学吗?怎样才能学好java框架?
  13. 2022-2028年全球及中国点胶枪行业发展现状调研及投资前景分析
  14. 零点起飞学HTML+CSS (顼宇峰) PDF扫描版
  15. Qt实现柱状图、饼状图、折线图、曲线图
  16. R语言:使用ComplexHeatmap包绘制热图
  17. 有个大神级女朋友是什么体验
  18. 阿迪达斯进博会展示首款碳足迹低于3千克运动鞋;霍尼韦尔携30余项产品和解决方案亮相进博会 | 美通社头条...
  19. uniapp 微信小程序 控制台警告和错误处理
  20. Vue中使用SVG-ICON

热门文章

  1. 广州求职指南(2004版)
  2. 计算机通信地址【图解TCP/IP(笔记六)】
  3. access随系统启动的宏,Access的自动运行宏的宏名是______。
  4. 【ODPS】利用阿里云ODPS作业进行圆周率Pi的计算
  5. SEO原创不等同于有价值
  6. C. Bouncing Ball(从后往前的前缀和)
  7. 计算机电池管理系统,使用 Simulink 和基于模型的设计开发电池管理系统
  8. 手机卡顿只清理垃圾是不行的,关掉这个开关,比新手机还好用
  9. 软件测试必问必背面试题,开始就项目经历项目业务......
  10. 【渝粤教育】国家开放大学2018年春季 0631-22T动物常见病防治 参考试题