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

关于super关键字访问父类属性值

关于super关键字访问父类属性值

阿布莱提阿布杜热西提 2017-05-09 14:47:46
父类:public class Animal {     int age=10;     String name;     public void eat(){         System.out.println("动物吃饭");     }     public Animal(){         System.out.println("动物类初始化");     }}子类:public class Dog extends Animal {     public void print(){     System.out.println(super.age);     }     public void printEat(){         super.eat();     }     public void eat(){        System.out.println("狗吃屎");     }}测试类:public class Initial {     public static void main(String[] args) {         Dog d=new Dog();         d.age=50;         d.print();         d.eat();         d.printEat();     }}打印结果:动物类初始化50动物吃饭动物吃饭问题:print方法结果为啥是50呢?print方法是打印父类Anmial里面的age值的啊,不应该是10的么?如果要是注释掉测试类里面的d.age=50,就会打印10了。这是为什么呢?实在是不明白啊,哪位大佬解释一下呀???先谢谢谢谢啦!!!
查看完整描述

1 回答

?
幕附

TA贡献78条经验 获得超18个赞


你都给子类赋值了为啥还要去显示父类的呢,你可以打印一下super的hashCode和dog的hashCode就能看出来了,你再了解一下上下转型,至于别的话我就不知道了

查看完整回答
反对 回复 2017-05-09
  • 阿布莱提阿布杜热西提
    阿布莱提阿布杜热西提
    第一次提问,这么快就有人回复还是有点小激动的。谢谢谢谢呀!!hashcode我还没学到呢,另外就是给子类复制了为啥不能去显示父类的属性值呢?super不就是做这个用的么?还是留着这个问题继续往后看,或许慢慢就明白了,这样也最有意思了。谢谢你呀~
  • 幕附
    幕附
    你的那俩字段都是父类的,你继续往后看吧 java入门三季看完你就懂了
  • 阿布莱提阿布杜热西提
    阿布莱提阿布杜热西提
    恩恩,好哒。谢谢啦!
  • 1 回答
  • 0 关注
  • 1782 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信