码迷,mamicode.com
首页 > 其他好文 > 详细

this() and super()的简记

时间:2019-12-06 17:35:50      阅读:83      评论:0      收藏:0      [点我收藏+]

标签:防止   使用   相同   程序   stat   需要   父类   同名   形式   

this:this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。

super:super可以理解为是指向自己超(父)类对象的一个指针,而这个超类指的是离自己最近的一个父类。

this和super的异同:

1)this()和super()在构造方法,作用是在JVM堆中构建出一个对象。为了避免多次创建对象,同一个方法内只能调用一次this()或super()【两个不能同时出现,因为this必然会调用其它的构造函数,其它的构造函数必然也会有super语句的存在,所以在同一个构造函数里面有相同的语句,就失去了语句的意义,编译器也不会通过】。同时为了避免操作对象时对象还未构建成功,需要this()和super()的调用在第一行实现【以此来创建对象】,防止异常。

2)程序中易产生二义性之处,应使用this来指明当前对象;如果函数的形参与类中的成员数据同名,这时需用this来指明成员变量名(这也是this的一个用法)

3)super()从子类中调用父类的构造方法,this()在同一类内调用其它方法。

4)构造器中第一行默认是super(),一旦直接父类的构造器中没有无参的,那么必须显式调用父类的某个有参构造函数。
5)super()和this()均需放在构造方法内第一行。调用super()必须写在子类构造方法的第一行,否则编译不通过。每个子类构造方法的第一条语句,都是隐含地调用super(),如果父类没有这种形式的构造函数,那么在编译的时候就会报错。

6)this()和super()都指的是对象,所以,均不可以在static环境中使用。包括:static变量,static方法,static语句块。

7)从本质上讲,this是一个指向本对象的指针, 然而super是一个Java关键字。

this() and super()的简记

标签:防止   使用   相同   程序   stat   需要   父类   同名   形式   

原文地址:https://www.cnblogs.com/yangrongkuan/p/11996622.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!