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

来源:9-4 Java 中的继承初始化顺序

qq_慕莱坞8430671

2017-03-08 15:07

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();

	}

}


写回答 关注

2回答

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

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

    qq_慕莱坞...

    谢谢你

    2017-03-08 16:04:47

    共 2 条回复 >

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

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

    qq_慕莱坞...

    谢谢。。已明白

    2017-03-08 16:04:24

    共 1 条回复 >

Java入门第二季 升级版

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

530560 学习 · 6091 问题

查看课程

相似问题