20.面向对象-----多态性
一、多态性的理解 一个事物的多种形态。 二、对象的多态性 父类的引用指向子类的对象。 例如: Person p = new Man();//Man是Person的子类 Object obj = new Date(); 说明: Java引用变量有两个类型:编译时类型和运行时类型。编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。简称:编译时,看左边;运行时,看右边。如果编译时的类型和运行时的类型不一致,就出现了对象的多态性。 举例: public class test { public static void main(String[] args) { Animal animal = new Cat(); //实际执行的是子类重写后的eat() animal.eat(); } } class Animal{ String name; int age; public void eat(){ System.out.println("动物进食"); } } class Cat extends Animal{ public void eat(){ String ability; System.out.println("猫类进食"); } } 三、虚拟方法调用 子类继承父类以后,对父类中的方法进行类重写。实例化父类的引用执行子类的对象(多态性)