当前位置: 首页 > article >正文

继承(6)

大家好,今天我们来继续学习继承的内容,了解一下this和super两者的一些特性和区别。话不多说,来看。

1.7 super 和 this

super和 this都可以在成员方法中用来访问:成员变量和调用其他的成员函数,都可以作为构造方法的第一条语句,那他们之间有什么区别呢?

[相同点]

1.都是Java中的关键字

2.只能在类的非静态方法中使用,用来访问非静态方法和字段.

1.在构造方法中调用时,必须是构造方法中的第一条语句,并且不能同时存在.

[不同点]

1.this是当前对象的引用,当前对象即调用实例方法的对象, super相当于是子类对象中从父类继承下来部分成员的引用.

2、在非静态成员方法中,this用来访问本类方法和属性,super用来访问成父类继承下来的方法和属性

3、在构进方法中:this(...)用于调用类构造方法,super(...)用于调用父类构造方法,两种调用不能同时在构造方法中出现.

4、构造方法中一定会存在super(...)调用,用户没有写编译器也会增加,但是this(...)用户不写则没有.

还记得之前讲过的代码块吗?我们简单回顾一下几个重要的代码块:实例代码块和静态代码块,在没有继承关系时的执行顺序。

a9b64bb0687f489d862979c33e11ee67.png

 

3165b45e236e4bfebfc8e66e1625d037.png

 5f2eed11ad4a4833935844f4956aeb76.png

 2a16a73370b746a79f5c2e285c310666.png

 fcf03f0db49648dd8115d2dd3f5ccd70.png

执行顺序:

 af9ffca5eea348168894304ba756c4e3.png

 ad297c504e82484d86b632e795b617e6.png

 d783ef66b0e845a1bbcba9c2ddb2f6a4.png

 2d0f6ddac7ae4d41827461a57644dc02.png

 1.静态代码块先执行,并且只执行一次,在类加载阶段执行.

2.当有对象创建时,才会执行实例代码块,实例代码块执行(包括实例对象)完成后,最后构造方法执行.

那么今天分享就到这里,谢谢大家!!!

3e1162f46a6d47fa9302f3fc3cbfc594.png

 


http://www.kler.cn/a/472636.html

相关文章:

  • SQL Server中可以通过扩展事件来自动抓取阻塞
  • 测试开发基础知识2
  • 【网络安全 | 漏洞挖掘】通过监控调试模式实现价值$15k的RCE
  • 嵌入式中QT实现文本与线程控制方法
  • 使用图像过滤器在 C# 中执行边缘检测、平滑、浮雕等
  • 【JavaWeb】2. 通用基础代码
  • C++ 中的 const 和 constexpr: 深入对比与最佳实践
  • HTML基础入门——简单网页页面
  • 电致变色和电泳技术在低功耗显示器中大放异彩
  • 一次完成Win10下MySQL 9.1 的安装
  • 算法的五个重要特性和4个基本标准
  • 医疗可视化大屏 UI 设计新风向
  • el-tree拖拽光标错位问题
  • oracle闪回恢复数据:(闪回查询,闪回表,闪回库,回收站恢复)
  • 本地导入封装的模块 在docker内报错ImportError
  • C#核心技术---Lambda表达式
  • SSM-SpringMVC-请求响应、REST、JSON
  • 基于 Nuxt3 + Obsidian 搭建个人博客
  • Synthesia技术浅析(四):自然语言处理
  • 深度学习J8周 Inception v1算法实战与解析
  • (leetcode算法题)2271. 毯子覆盖的最多白色砖块数
  • C++ 复习总结记录三
  • minibatch时,损失如何记录
  • 机器学习之随机森林算法实现和特征重要性排名可视化
  • Three.js 12中利用着色器进行材质加工深度解析
  • Backend - C# asp .net core MVC