父类: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就能看出来了,你再了解一下上下转型,至于别的话我就不知道了
添加回答
举报
0/150
提交
取消