JAVA 中super 和this 的区别?

求大虾们给个好的理解方法啊谢谢另外,怎么有时在传值的时候也用this啊?搞不明白... 求大虾们给个好的理解方法啊 谢谢
另外,怎么有时在传值的时候也用this啊? 搞不明白
展开
 我来答
59分粑粑分享生活
高粉答主

2020-04-27 · 专注生活好物分享,解答日常方方面面的问题
59分粑粑分享生活
采纳数:326 获赞数:119825

向TA提问 私信TA
展开全部

区别如下:

1、指代上的区别

(1)super:是对当前对象中父对象的引用。

(2)This:指当前对象的参考。

2、引用对象上的区别

(1)super:直接父类中引用当前对象的成员(当基本成员和派生类具有相同成员时,用于访问直接父类中隐藏父类中的成员数据或函数定义)。

(2)This:表示当前对象的名称(程序中容易出现歧义的地方,应该用来表示当前对象;如果函数的成员数据与该类中成员数据的名称相同,应用于表示成员变量名称)。

3、调用函数上的区别

(1)super:在基类中调用构造函数(是构造函数中的第一条语句)。

(2)This:在此类中调用另一个结构化的构造函数(是构造函数中的第一条语句)。

床前明月儿
高能答主

2019-11-16 · 探索生活中的另一种可能
床前明月儿
采纳数:101 获赞数:171946

向TA提问 私信TA
展开全部

一、指代不同

1、super:是当前对象里面的父对象的引用。

2、this:指的是当前对象的引用。

二、调用函数不同

1、super:调用基类中的某一个构造函数(应该为构造函数中的第一条语句) 。

2、this:调用本类中另一种形成的构造函数(应该为构造函数中的第一条语句)。


三、引用对象不同

1、super:引用当前对象的直接父类中的成员(用来访问直接父类中被隐藏的父类中成员数据或函数,基类与派生类中有相同成员定义时如:super.变量名    super.成员函数据名(实参)。

2、this:代表当前对象名(在程序中易产生二义性之处,应使用this来指明当前对象;如果函数的形参与类中的成员数据同名,这时需用this来指明成员变量名)。


参考资料来源:百度百科-Java关键字super

参考资料来源:百度百科-java关键字

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
killary
推荐于2017-09-27 · TA获得超过1185个赞
知道小有建树答主
回答量:559
采纳率:0%
帮助的人:417万
展开全部
this表示当前对象,也就是当前类对象,super表示当前类的父类。

举例:你定义一个新的类:A,这个A继承了类B,也就是说B是A的父类。那么如果A中 有个方法:aa();B中也有个方法: aa();

那么在A 中用this.aa()调用的就是A中定义的方法,而super.aa()调用的就是A的父类B中定义的方法aa();
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
育知同创教育
2018-07-28 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部
this表示当前对象,也就是当前类对象,super表示当前类的父类。

举例:你定义一个新的类:A,这个A继承了类B,也就是说B是A的父类。那么如果A中 有个方法:aa();B中也有个方法: aa();

那么在A 中用this.aa()调用的就是A中定义的方法,而super.aa()调用的就是A的父类B中定义的方法aa();
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
user_pyw
2009-05-04 · TA获得超过325个赞
知道小有建树答主
回答量:324
采纳率:0%
帮助的人:277万
展开全部
super特指本类的父类,
this特指当前类。
呵呵,
应该是这样,不过我们用this.***都是指代本类的一些静态的属性或者方法,
可省略.

好像一般的都是把super用在构造函数中。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(9)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式