楼主,要回答你的问题,我想,我们得来理解this和super关键字的含义,请看我的学习笔记:
this和super关键字:
this和super分别是什么,他们各自的应用场景是什么?
this关键字:隐式参数,用于区分成员和局部变量的同名情况。
在普通方法中,this总是指向调用该方法的对象。
在构造方法中,this总是指向正要初始化的对象。
this不能用于static方法中。还可以用来调用其他的构造方法。
this代表它所在函数所属对象的引用,哪个对象在调用this所在的函数,this就代表哪个对象。
this关键字的应用。
在定义类中功能时,该函数内部要用到调用该函数的对象时,这时用this表示这个对象,但凡本类功能内部使用到了本类对象,都用this表示。
this关键字在构造函数间调用:
this();用于构造函数间的调用。
通过this调用构造方法,必须位于第一句。
super代表父类的内存空间的标识。
super代表父类的内存空间的标识。
当子父类出现同名成员时,可以用super进行区分
子类要调用父类构造函数时,可以使用super语句。
this:
1.存储是当前对象的引用;
2.它始终指向的是本对象内部的成员(成员属性、成员方法、构造函数)
super:
1.存储的父类对象的引用;
2.它指向父类对象中的成员(成员属性、成员方法、构造函数)
在子类中可以定义跟父类相同的成员属性,此时,在子类中,这个变量将覆盖
父类的同名变量。可以使用关键字super.变量名 显示的去获取父类的被覆盖的同名
变量。
注意:如果子类的构造函数既需要this。又需要访问父类的构造函数,这种情况是不允许的。(他们都需要定义在第一行) |