问答详情
源自:9-4 Java 中的继承初始化顺序

为什么不显示子类的内容呢?

public class dog {

	public int age;
	public String name;

	public void eat() {
		System.out.println(age);
		System.out.println(name);
		System.out.println("功能");
	}

	public dog() {
		System.out.println("dog类执行了!");
	}
}
public class Test extends dog {
	public void eat() {
		System.out.println("狗狗是具有吃东西的功能!");
	}

	public Test() {
		System.out.println("Test类执行了!");
	}
}
public class Initil {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		dog eat = new dog();
		eat.age = 10;
		eat.name = "kaka";
		eat.eat();

	}

}


提问者:qq_慕莱坞8430671 2017-03-08 15:07

个回答

  • AzuraStar
    2017-03-08 15:38:39
    已采纳

    1.多态: eat引用的是父类,就调用父类的方法,eat引用的是子类,就调用子类的方法,
    2.继承:子类Test中覆盖了父类dog的eat()方法,运行时,eat引用的是父类,eat()方法没有被覆盖,又怎么会显示子类内容呢

  • 百里刘叔
    2017-03-08 15:18:12

    因为你创建的是父类对象 应该创建Test类对象 才能显示子类内容