首 页 行业热点 新车 试驾评测 养车用车 车型库

JAVA 中super 和this 的区别?

发布网友 发布时间: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用在构造函数中。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com