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(); } }
1.多态: eat引用的是父类,就调用父类的方法,eat引用的是子类,就调用子类的方法,
2.继承:子类Test中覆盖了父类dog的eat()方法,运行时,eat引用的是父类,eat()方法没有被覆盖,又怎么会显示子类内容呢
因为你创建的是父类对象 应该创建Test类对象 才能显示子类内容