黑马程序员技术交流社区

标题: 继承问题 [打印本页]

作者: jialihong    时间: 2013-7-31 16:05
标题: 继承问题
本帖最后由 杨兴庭 于 2013-8-1 18:49 编辑

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

作者: 哪颗最亮的星星    时间: 2013-7-31 18:59
如果子父类中出现非私有的同名变量时,子类要访问本类的变量有this关键字,子类要访问父类的变量,使用super关键字.
作者: 杨兴庭    时间: 2013-7-31 20:19
貌似在子类中重新定义的变量都和父类没啥关系吧。。。。。{:soso_e100:}
作者: woaiheima    时间: 2013-7-31 21:00
在子类中可以直接定义,与父类不发生关系!
作者: breaveheart    时间: 2013-8-1 09:54
没关系的呀,子类的方法可以覆盖父类,但是子类自己本身定义的变量不会传到父类里的。
作者: nihaoligong    时间: 2013-8-1 09:57
继承父类后  在子类创建一个新的变量和父类没有任何关系, 如果想调用父类的 需要super关键字 子类要要调用本身的 可以用this关键字。子类是可以覆盖父类的方法的,但是 父类是不能把子类的变量传回去的
作者: taotao    时间: 2013-8-1 10:54
你可能担心的是子类成员变量会不会覆盖父类成员变量。
基础视频中毕老师说过:“多态中成员变量,无论编译和运行,都参考左边(引用型变量所属类).”
也就是说,如果父类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




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2