发布网友 发布时间:2022-04-21 05:46
共4个回答
热心网友 时间:2023-10-15 10:35
区别如下:
1、指代上的区别
(1)super:是对当前对象中父对象的引用。
(2)This:指当前对象的参考。
2、引用对象上的区别
(1)super:直接父类中引用当前对象的成员(当基本成员和派生类具有相同成员时,用于访问直接父类中隐藏父类中的成员数据或函数定义)。
(2)This:表示当前对象的名称(程序中容易出现歧义的地方,应该用来表示当前对象;如果函数的成员数据与该类中成员数据的名称相同,应用于表示成员变量名称)。
3、调用函数上的区别
(1)super:在基类中调用构造函数(是构造函数中的第一条语句)。
(2)This:在此类中调用另一个结构化的构造函数(是构造函数中的第一条语句)。
热心网友 时间:2023-10-15 10:35
一、指代不同
1、super:是当前对象里面的父对象的引用。
2、this:指的是当前对象的引用。
二、调用函数不同
1、super:调用基类中的某一个构造函数(应该为构造函数中的第一条语句) 。
2、this:调用本类中另一种形成的构造函数(应该为构造函数中的第一条语句)。
三、引用对象不同
1、super:引用当前对象的直接父类中的成员(用来访问直接父类中被隐藏的父类中成员数据或函数,基类与派生类中有相同成员定义时如:super.变量名 super.成员函数据名(实参)。
2、this:代表当前对象名(在程序中易产生二义性之处,应使用this来指明当前对象;如果函数的形参与类中的成员数据同名,这时需用this来指明成员变量名)。
参考资料来源:百度百科-Java关键字super
参考资料来源:百度百科-java关键字
热心网友 时间:2023-10-15 10:36
this表示当前对象,也就是当前类对象,super表示当前类的父类。
举例:你定义一个新的类:A,这个A继承了类B,也就是说B是A的父类。那么如果A中 有个方法:aa();B中也有个方法: aa();
那么在A 中用this.aa()调用的就是A中定义的方法,而super.aa()调用的就是A的父类B中定义的方法aa();
热心网友 时间:2023-10-15 10:37
super特指本类的父类,
this特指当前类。
呵呵,
应该是这样,不过我们用this.***都是指代本类的一些静态的属性或者方法,
可省略.
好像一般的都是把super用在构造函数中。