this和super
时间: 2024-04-24 19:27:35 浏览: 12
回答: 在Java类中,this和super都是关键字,用于引用当前对象和父类对象。this代表本类对象的引用,super代表父类的内存空间的标识。\[1\]
this关键字主要用于以下几个方面:
1. 调用本类中的成员方法或成员变量。
2. 在构造方法中调用本类的其他构造方法。
3. 返回当前对象。
super关键字主要用于以下几个方面:
1. 调用父类中的成员方法或成员变量。
2. 在子类构造方法中调用父类的构造方法。
3. 在子类中访问父类的构造方法。
在使用super和this时,有一些区别和注意事项:
1. 当super.后面跟方法时,它是在调用父类中的该方法(重写前);而this.后面跟方法时,它是在调用子类中的该方法(重写后)。
2. 当super.后面跟属性时,它是在调用父类中定义的属性;而this.后面跟属性时,它既可以调用从父类继承过来的属性,也可以调用自身的属性。
3. super()用于子类调用父类的构造方法,而this()用于同类的多个构造方法之间互相调用。
4. super()和this()都必须写在构造方法的第一句,不能同时使用。
总结起来,super总是与父类相关,用于访问子类的父类属性和行为;而this则是当前对象的引用,用于访问本类的属性和行为。\[2\] \[3\]
#### 引用[.reference_title]
- *1* [Java关键字(二):this 和 super](https://blog.csdn.net/weixin_52533007/article/details/124136944)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v4^insert_chatgpt"}} ] [.reference_item]
- *2* *3* [this和super的总结](https://blog.csdn.net/weixin_42888747/article/details/108065671)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v4^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]