明确一下,Java多态的三个必要条件:
1、 继承
2、 子类重写父类方法
3、 父类引用指向子类对象
package test.xing;
class Father{
protected int age;
public Father(){
age = 40;
}
void eat(){
System.out.println("父亲在吃饭");
}
}
class Child extends Father{
protected int age;
public Child(){
age = 18;
}
void eat(){
System.out.println("孩子在吃饭");
}
void play(){
System.out.println("孩子在打CS");
}
}
public class TestPolymorphic {
public static void main(String[] args) {
Father c = new Child();
c.eat();
//c.play();
System.out.println("年龄:"+c.age );
}
}
//因为虚拟机中子类和父类是同时存在的,父类的成员变量没有被覆盖,只是在子类中隐藏,调用父类还是可以得到 原来的变量