多态

3.1 多态概述:

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

举例:

  • 可以说猫是猫:猫 cat = new 猫();
  • 可以说猫是动物:动物 animal = new 猫();

多态的前提和体现:

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

3.2 多态中成员访问特点:

  • 成员变量:编译看父类是否有,执行看父类
  • 成员方法:编译看父类是否有,执行看子类
  • 成员变量和成员方法访问不一致是因为 “成员方法有重写,成员变量没有重写”

3.3 多态的好处和弊端:

好处:提高程序扩展性。定义方法时,使用父类型作为参数,将来使用时,使用具体子类型参与操作

弊端:不能访问子类特有的功能。

3.4 多态中的转型:

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

Animal a = new Cat();

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

Cat c = (Cat)a;