java引用变量有2中类型:
(1)编译时类型:由声明该变量时使用的类型决定。
(2)运行时类型:由实际赋给该变量的对象决定。
如果编译时类型和运行时类型出现不一致时,就可能出现多态!
看下面的程序:
引用变量bc和sc编译时类型和运行时类型完全相同,没有任何问题。
但是,第三个引用变量ploymophicBc比较特殊,它编译时类型是BaseClass,运行时类型的SubClass。当调用该引用变量的test()方法时,实际执行的是SubClass覆盖后的方法,这就是多态。
即:相同类型的变量,调用同一个方法时呈现的不同的行为特征,这就是多态。