A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Renica 中级黑马   /  2013-6-7 10:32  /  1563 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 Renica 于 2013-6-7 11:54 编辑

请问一下super和this有什么联系和区别呢?另外他们都是什么类型的,作用。

评分

参与人数 1技术分 +1 收起 理由
刘凯 + 1 加油,自习把视频看看

查看全部评分

3 个回复

倒序浏览
super是父类对象的引用,必须是出现在子类中,在子类中想要访问父类的构造函数时,必须通过super();方法访问,所以super是指向父类的。

this是谁调用当前对象就指向谁。

子类中出现非私有的同名成员变量时,子类要访问本类中的变量,用this子类要访问父类中的同名变量,用super。

评分

参与人数 1技术分 +1 收起 理由
刘凯 + 1 赞一个!

查看全部评分

回复 使用道具 举报
this:代表本类对象的引用。
super:代表父类的存储空间。
http://bbs.itheima.com/forum.php ... ;pre_pos=7&ext=
super和this关键字都可以用来覆盖java语言的默认作用域,使被屏蔽的方法或变量变为可见。
在以下场合会出现方法或变量被屏蔽的现象
(1) 场合一:在一个方法内,当局部变量和类成员变量同名,或者局部变量和父类的成员变量同名时,按照变量的作用域规则,只有局部变量在方法内可见。
(2)场合二:当子类的某个方法覆盖了父类的一个方法,在子类的范围内,父类的方法不可见。
(3)场合三:当子类中定义了和父类同名的成员变量时,在子类的范围内,父类的成员变量不可见。
this 和super是常用来指代子类对象和父类对象的关键字。JAVA系统默认,每个类都缺省地具有null,this和super三个域,所以在任意类中都可以不加说明而直接使用他们。其中null代表“空”,代表一个什么也没有的空值。
this表示的是当前对象本身,更准确地说,this代表了当前对象的一个引用。对象引用可以理解为对象的另一个名字,通过引用可以顺利地访问到对象,包括访问、修改对象的域、调用对象的方法。
super表示的是当前对象的直接父类对象,是对象的直接父类对象的引用。所谓直接父类是对象是相对于当前对象的其他“祖先”类而言的。

评分

参与人数 1技术分 +1 收起 理由
刘凯 + 1 赞一个!

查看全部评分

回复 使用道具 举报 1 0
w270307032 发表于 2013-6-7 10:49
this:代表本类对象的引用。
super:代表父类的存储空间。
http://bbs.itheima.com/forum.php?mod=viewthread ...

比较详细,差不多明白了,谢谢了!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马