supper和this关键字的区别
supper和this关键字的区别
定义
this:
this是一个变量 ,一个引用。this保存的就是当前对象的地址,指向对象本身,即this代表的就是“当前对象”。
supper:
super关键字和this的作用类似,将被隐藏的父类的成员变量和成员方法变为可见,或者说用来引用被隐藏的父类的成员变量和成员方法。
区别
区别 | supper | this |
---|---|---|
前提不同 | 需要存在继承关系才能使用 | 不需要存在继承也可以使用 |
调用成员变量和方法 | 引用当前对象的直接父类中的成员,用来访问直接父类中被隐藏的成员变量或方法。父类与子类中有相同的成员时使用,如:super.变量名或super.成员方法名(实参)。 | 代表当前对象名,在程序中易产生二义性之处,应使用this来指明当前对象。如果方法的形参与类中的成员变量同名,这时需用this来指明成员变量名。 |
调用构造方法 | 调用父类中的某一个构造方法,应该为构造方法中的第一条语句 | 调用本类中另一种形式的构造方法,应该为构造方法中的第一条语句 |
其他 | 调用super()必须写在子类构造方法的第一行,否则编译不通过 | 每个子类构造方法的第一条语句,都是隐含的调用super(),如果父类中没有这种构造方法,那么在编译的时候会报错 |
注意
1.this和super都指的是对象,所以均不可以在static方法中使用;
2.this()和super()一样都是对本类构造方法的调用,都是放在第一行,因此两者不能共存;
supper和this关键字的区别相关推荐
- C++中struct和class关键字的区别
文章目录 1 C++中struct和class关键字的区别 1.1 类的关键字 1 C++中struct和class关键字的区别 1.1 类的关键字 C++中类的关键字: struct在C语言中已经有 ...
- volatile关键字与synchronization关键字的区别?
在我们平时写代码需要同步的时候我们都会想到要使用同步锁(synchronization),但是我们都知道这个是效率比较低的.我了解了一个新的一个关键字,那就是volatile,这个的关键字它是Java ...
- Java复习题1(1.写出抽象类和接口的区别。2.This和Super关键字的区别有哪些?3.常见的类集子类有哪些,各有什么特点?4.什么是多态,多态实现的前提是什么?)
1.写出抽象类和接口的区别. 答: 抽象类中的方法不全是抽象方法,可以在抽象类中声明并实现其他方法. 接口不允许方法的实现,定义的方法无方法体. 抽象类中的成员变量可以使用不同修饰符修饰,如publi ...
- 转:C#中Monitor对象与Lock关键字的区别分析
Monitor对象1.Monitor.Enter(object)方法是获取 锁,Monitor.Exit(object)方法是释放锁,这就是Monitor最常用的两个方法,当然在使用过程中为了避免获取 ...
- iOS开发中各种关键字的区别
1.一些概念 1.浅Copy:指针的复制,只是多了一个指向这块内存的指针,共用一块内存. 深Copy:内存的复制,两块内存是完全不同的, 也就是两个对象指针分别指向不同的内存,互不干涉. 2.atom ...
- final关键字_Dart核心语言基础const关键字与final关键字的区别
题记:不到最后时刻,千万别轻言放弃,无论结局成功与否,只要你拼搏过,尽力过,一切问心无愧 本文描述 Dart 中 const 关键字与 final 关键字的基本使用知识点以及对比区别. Dart核心基 ...
- SQL Server 和 MySql 语法和关键字的区别
(1) MySQL的ifnull()函数对应sql的isnull()函数; (2) mysql的存储过程中变量的定义去掉@; (3) mysql的每句结束要用";" ...
- java中int和integer的区别_Java异常中throw和throws关键字的区别
Java中常常弄混的两个关键字,throw和throws,它们有什么区别呢?如何记忆他们,而不至于出错呢? throw和throws 区别 throws:出现在方法的签名中,声明当前方法可能抛出的所有 ...
- Dart核心语言基础const关键字与final关键字的区别
题记:不到最后时刻,千万别轻言放弃,无论结局成功与否,只要你拼博过,尽力过,一切问心无愧 本文描述 Dart 中 const 关键字与 final 关键字的基本使用知识点以及对比区别 ** 你可能需要 ...
最新文章
- 如何检查Bash中是否设置了变量?
- %00截断攻击的探索
- 蚂蚁金服面试经历!临场发挥!
- 通俗的说下浏览器的渲染过程
- Redis入门(二)安装和基本操作
- 13个代码注释的小贴士
- 什么是 MultiRaft ?
- python根据2点经纬度计算距离
- ndk linux 最新版本,NDK各版本下载
- c语言输出字符串长度 空格,C++指针变量:输入一个字符串,删除字符串中所有空格,输出删除空格后字符串的长度,需编写以下功能函数...
- 析构函数为虚函数的必要性
- 飞机大战小游戏1.0
- python特性 property_Python中property属性实例解析
- 线性同余法产生均匀随机数C语言,利用线性同余法产生随机数进行同步计算
- 凯恩帝k1000ti参数设置_凯恩帝KND数控K1000TI系统维修
- mongoDB 4.0 开启远程访问
- [HTML/CSS]Flex布局中space-evenly的兼容性
- 李沐动手学深度学习V2-注意力评分函数
- 发布会签到系统_系统开发_创建项目及应用
- HTTP 各种状态码代表的含义
热门文章
- angularjs2使用magnifier图片展示插件
- python抢票脚本好用吗_春运到了,带你用python来抢票回家!
- 【科普】Xilinx 3D IC技术简介
- 宝泉岭计算机学校,2020年黑龙江计算机二级考点有哪些
- pac for linux,Ubuntu下安装PAC Manager 4.5.3.9
- 图案设计灵感怎么写_服装设计灵感怎么写
- Cortex-M CPU架构基础
- unity2022打开项目时报Fatal error显示无权访问d3dcompiler_47.dll, 解决方法很简单-还有ucrtbase.dll问题
- python 京东 抢券_Python写一个京东抢券脚本
- 清理电脑垃圾(windows)