Fork me on GitHub

Java SE 多态

1.多态

  Java引用变量有两个类型:一个是编译时类型,一个是运行时类型。编译时类型由声明该变量时使用的类型决定,运行时类型由实际赋给该变量的对象决定。如果编译时类型和运行时类型不一致,就可能出现多态。

  当调用方法时,(多态)对象的方法行为总是表现出子类方法的行为特征,而不是父类方法的行为特征。

  引用变量在编译阶段只能调用其编译时类型所具有的方法,但运行时则执行它运行时类型所具有的方法。因此,引用变量只能调用声明该变量时所用类里所包含的方法。

  通过引用变量来访问其包含的实例变量时,系统总是试图访问它编译时类型所定义的成员变量,而不是它运行时类型所定义的成员变量。

2.引用类型的强制转换

  引用类型的强制转换只能在具有继承关系的两个类型之间进行,如果把一个父类实例转换成子类类型,则这个对象必须编译时类型为父类类型,而运行时类型是子类类型。

      当把子类对象赋给父类引用变量时,称为向上转型,这种转型总是可以成功的,这也从侧面证实了,子类是一种特殊的父类。

  

posted @ 2017-02-14 17:54  BugBingo  阅读(97)  评论(0编辑  收藏  举报