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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© jialihong 中级黑马   /  2013-7-31 16:05  /  1036 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨兴庭 于 2013-8-1 18:49 编辑

子类在继承父类时,怎样自定义与父类无关的变量?

评分

参与人数 1黑马币 +3 收起 理由
杨兴庭 + 3

查看全部评分

7 个回复

倒序浏览
如果子父类中出现非私有的同名变量时,子类要访问本类的变量有this关键字,子类要访问父类的变量,使用super关键字.
回复 使用道具 举报
貌似在子类中重新定义的变量都和父类没啥关系吧。。。。。{:soso_e100:}
回复 使用道具 举报
在子类中可以直接定义,与父类不发生关系!
回复 使用道具 举报
没关系的呀,子类的方法可以覆盖父类,但是子类自己本身定义的变量不会传到父类里的。
回复 使用道具 举报
继承父类后  在子类创建一个新的变量和父类没有任何关系, 如果想调用父类的 需要super关键字 子类要要调用本身的 可以用this关键字。子类是可以覆盖父类的方法的,但是 父类是不能把子类的变量传回去的

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
你可能担心的是子类成员变量会不会覆盖父类成员变量。
基础视频中毕老师说过:“多态中成员变量,无论编译和运行,都参考左边(引用型变量所属类).”
也就是说,如果父类A中有int a =1,子类B中有int a =2。
那么在运行的时候,就算应用了多态,值也是参考引用型变量。
比如:
A test = new B();
因为test所属类是A,所以test.a的值还是1。
综上所述,你可以大胆的在子类定义成员变量,完全和父类没关系。
详情请看:http://blog.csdn.net/xiemk2005/article/details/5805679

评分

参与人数 1技术分 +1 收起 理由
杨兴庭 + 1

查看全部评分

回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马