This和Super的区别
一:this
java中this关键字的作用和词义很接近:
- 它在方法内部使用,即这个方法所属对象的引用
- 它在构造器内部使用,表示该构造器正在初始化的对象。
this表示当前对象,可以调用类的属性、方法和构造器。
注意
- 使用this()必须放在构造器的首行!
- 使用this()调用本类中其他的构造器,保证至少有一个构造器不是用this的。
二:super
java类中使用super来调用父类中的指定操作:
- super可用于访问父类中定义的属性
- super可用于调用父类中定义的成员方法
- super可用于在子类构造方法中调用父类的构造器
注意
尤其当子父类出现同名成员是,可以用super进行区分。
super的追溯不仅限于直接父类。
super和this的用法相像,this代表本类对象的引用,super代表父类的内存空间的标识。
三:this和super区别
| No. | 区别点 | this | super |
|---|---|---|---|
| 1 | 访问属性 | 访问本类中的属性,如果本类没有此属性则从父类中继续查找 | 访问父类中的属性 |
| 2 | 调用方法 | 访问本类中的方法 | 直接访问父类中的方法 |
| 3 | 调用构造器 | 调用本类构造器,必须放在构造器首行 | 调用父类构造器,必须放在子类构造器的首行 |
| 4 | 特殊 | 表示当前对象 | 无 |

浙公网安备 33010602011771号