动态绑定
在java程序运行时,调用的方法由其具体类型决定.
经典猫狗案例中,多态的格式:
Animal a = new Dog();
父类引用 Animal a
指向 =
子类对象 new Dog()
Animal类中的普通方法eat();
Dog类的重写父类Animal中的方法eat();
a.eat();
在程序编译时期,Animal a会直接去父类Animal中找方法eat,如果没有,则编译时会报错,如果有的话,他才会看子类中重写后的eat方法并执行;
成员变量不存在重写的概念,编译运行看的都是父类的成员变量.运行的都是父类中的成员变量值;
静态方法也不存在重写的概念,相当于用变量类型(Animal) 的类名(a)去调用静态方法;