Skip to content

多态

  • 同一个对象,在不同时刻表现出来的不同形态

    例如:猫

    java
    Cat cat = new Cat();
    
    Animal animal = new Cat();

    猫在不同时刻表现出不同的形态,这就是多态

  • 多态的前提和体现

    • 有继承/实现关系
    • 有方法的重写
    • 有 父类引用指向子类对象

2.多态中成员访问特点

  • 成员变量:编译看左边,执行看左边
  • 成员方法:编译看左边,执行看右边

成员变量和成员方法访问不一样的原因:

  • 成员方法被重写,而成员变量没有

3.多态的好处和弊端

  • 多态的好处:提高了程序的拓展性

    具体表现:定义方法的时候,使用父类型作为参数,使用的时候,使用具体的子类型参与操作

  • 多态的弊端:不能使用子类的特有功能

4.多态中的转型

  • 向上转型:从子到父,父类引用指向子类对象

  • 向下转型:从父到子,父类引用转为子类对象

    java
     //多态
            //向上转型:从子到父,父类引用指向子类对象
            Animal a = new Cat();
            a.eat();//子类重写父类的eat方法
    
            //向下转型:从父到子,父类引用转为子类对象
            Cat c = (Cat) a;
            c.eat();//子类重写父类的eat方法
            c.playGame();//子类特有方法