关于super的问题

来源:9-7 Java 中的 super 的使用

闰冬秋拾

2016-07-19 22:05

//Animal类:
public class Animal {
public int age = 110;
public String name;
public void eat(){
System.out.println("动物具有吃东西的能力");
}
public Animal(){
System.out.println("Animal类执行");
age = 210;
}
}
//dog类继承Animal类:
public class Dog extends Animal {
	

	public Dog(){
		System.out.println("Dog类执行了");
		System.out.println("这里是dog的构造函数,现在Age of the Animal is:" + super.age);
	}
	public void eat(){
		System.out.println("狗是可以吃东西的");
		System.out.println("这里是dog类内的eat函数,现在Age of the Animal is:" + super.age);
	}
}
//初始化类:
public class Initial {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Animal animal = new Animal();
		System.out.println(animal.age);
		Dog dog = new Dog();
		dog.age=110;
		dog.name="Bobby";
		dog.eat();
	}

}

显示结果:

Animal类执行

210

Animal类执行

Dog类执行了

这里是dog的构造函数,现在Age of the Animal is:210

狗是可以吃东西的

这里是dog类内的eat函数,现在Age of the Animal is:110

为什么在eat函数里print年龄的时候,就是显示主函数给狗的年龄了?难道不应该是父类animal的年龄吗?求解。

写回答 关注

1回答

  • ray_and
    2016-07-19 22:16:59
    已采纳

    dog类继承了animal类,dog类没有定义自己的age, 这种情况下Dog类和Animal类的age是同一个。

    闰冬秋拾

    非常感谢!

    2016-07-20 23:23:31

    共 2 条回复 >

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530655 学习 · 6091 问题

查看课程

相似问题

super的问题

回答 3

super的问题

回答 2

super问题

回答 3

有关super

回答 2