0%

多态

多态(polymorphic):

多种形态

  • 向上造型/自动类型装换:

    • 超类型的引用指向派生类的对象
    • 能点出来什么,看引用的类型
  • 向下转型/强制类型转换,成功的条件只有如下两种:

    • 引用所类型指向的对象,就是该类型
    • 引用所指向的对象,实现了给接口或继承了该类
  • 强转时若不符合如上条件,则发生ClassCastExceotion类型转换异常

    建议在强制类型转换之前,先通过Instanceof来判断引用的对象是否是该类型

    注:Instanceof返回boolean结果,它为true的条件即使强转成功的条件。

    若想访问的属性/行为在超类中没有,则需要强制类型转换

  • 多态的实际应用:

    • 将不同对象统一封装到超类数组中来访问,实现代码复用
    • 将超类型作为参数或返回值类型,传递或返回派生类对象,以扩大方法的应用范围,实现代码的复用