为了账号安全,请及时绑定邮箱和手机立即绑定

为何用父类get方法和子类get方法获取的age值是不一样的?!

你好!

我有疑惑如图

Animal父类

http://img1.sycdn.imooc.com//5f1e5af40001814a05790397.jpg


main

http://img1.sycdn.imooc.com//5f1e5af400010a0805800323.jpg

Dog子类

http://img1.sycdn.imooc.com//5f1e5af40001293905880318.jpg

结果如下

http://img1.sycdn.imooc.com//5f1e5af40001f2d704310169.jpg


我的疑惑是 main中代码是丛上到下一行一行执行的 那么在用子类的changeAge方法修改了age的值为20以后 内存中age的值已经变成了20 为何用父类get方法获取的age的值还是初始的1 而不是修改后的值 而子类的get方法就是修改后的值?谢谢


正在回答

2 回答

我觉得应该是super只是父类的替身一样的东西可以显示父类属性等,但不能直接这样改,它们俩是不同的,你可以

Animal a=new Dog()这样去属性覆盖,这样是可以改变父类属性值的

0 回复 有任何疑惑可以回复我~

一个是A对象,一个是B对象,子类的changeAge是在对象B中调用的,age不是静态变量,A对象不受影响,应该是这样

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为何用父类get方法和子类get方法获取的age值是不一样的?!

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信