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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 曹宇 中级黑马   /  2013-3-29 13:03  /  1265 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

当父子类中有同名的变量的时候,那么创建子类对象,使用this关键字是不是访问的子类中的那个变量,使用super变量访问的是父类中的那么变量?

而当,父子类中的变量没有同名的时候,那么创建子类对象,无论使用this还是super都是使用的同一个变量?这俩没有区别?

一个小疑问,还希望大神们给予解答。谢谢啦!

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

4 个回复

倒序浏览
1)        super和this的用法相同
2)        this代表本类应用
3)        super代表父类引用
4)        当子父类出现同名成员时,可以用super进行区分
5)        子类要调用父类构造函数时,可以用super语句。

你做的问题不是不可以 ,但是不建议怎样做,代码的阅读性会非常差,失去了继承的意义。


3)        定义继承需要注意:
a.        不要仅为了获取其他类中的某个功能而去继承、
b.        类与类之间有所属关系 is a  

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
this关键字
        (1)this关键字代表本类对象的一个引用,谁调用this所在的方法,this就代表谁  
        (2)this的使用场景
                A:用于区分同名成员变量和局部变量;
                B:在定义函数时,该函数内部要用到调用该函数的对象时,因为此时对象还没建立,故this代表此对象
                B:构造函数间调用
                        **这个时候,this(参数)必须作为第一条语句存在。

this和super的区别
                this:代表本类对象的引用。
                super:代表父类的存储空间。

评分

参与人数 1技术分 +1 收起 理由
陈丽莉 + 1

查看全部评分

回复 使用道具 举报
  恩,我明白了,谢谢你们的回答。我想我说的是可以的,只是如楼上所说,这样代码的阅读性会很差,当没有同名变量出现的时候,仅仅用this就行了,在用super虽然是和this相同但是会让人觉得很混乱。。。

受教了,谢谢!
回复 使用道具 举报
曹宇 发表于 2013-3-29 13:50
恩,我明白了,谢谢你们的回答。我想我说的是可以的,只是如楼上所说,这样代码的阅读性会很差,当没有同 ...

如果没有问题了,请将帖子分类改成【已解决】哦~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马