在java里面super和this关键字的相同点是它们两个都是放在构造方法的第一行,其它行可以自己指定,构造函数只能调用一次,this()和super()都是指对象,所以不能在static环境里面使用,包括static变量,static方法,static语句块等都属于static环境。
不同的地方在于this本质是一个指针,而super是一个关键字。super()是在本类中调用父类的构造方法,this是在本类中调用其它的构造方法。this和super的常见用法都有三种,也比较类似,区别在于this是和当前类有关,super是和父类有关,常见用法如下:
this的三种常见用法:
1.this相当于指向当前对象这是this的普通的引用。
2.this用来区分相同的形参与成员名字,若不相同可以不用this区分。
3.引用当前类的构造函数。
super也要三种用法:
1.相当于指向父类对象的引用,这点与this比较像,只是this是指向当前对象,super指向父类对象,通过这种方式,我们可以通过super.成员的方式引用父类的成员。
2.子类与父类具有相同名字的成员变量或者方法时,我们可以用super进行区分。
3.当我们需要调用子类自身其它的一个构造函数时,使用this,但是如果我们想要调用父类的构造函数,需要使用super。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)