A. JAVA 中super 和this 的区别
区别如下:
1、指代上的区别
(1)super:是对当前对象中父对象的引用。
(2)This:指当前对象的参考。
2、引用对象上的区别
(1)super:直接父类中引用当前对象的成员(当基本成员和派生类具有相同成员时,用于访问直接父类中隐藏父类中的成员数据或函数定义)。
(2)This:表示当前对象的名称(程序中容易出现歧义的地方,应该用来表示当前对象;如果函数的成员数据与该类中成员数据的名称相同,应用于表示成员变量名称)。
3、调用函数上的区别
(1)super:在基类中调用构造函数(是构造函数中的第一条语句)。
(2)This:在此类中调用另一个结构化的构造函数(是构造函数中的第一条语句)。
B. JAVA中的super和this的用法和作用
super是调用父类的构造函数
使用super调用有一些限制条件,不能在super调用中使用实例变量作为参数.
而且在构造函数中,调用必须写在继承类的构造函数定义的第一行,不能在构造函数的后面使用.
this调用的同类的构造函数.
super的限制条件同样适用于this函数
一个构造函数定义中不能同时包括this调用和super调用,如果想同时包括的话,可以在this中首先进行super调用.