多態與類型轉化原理分析:
一、多態性:超類引用在運行時既能代表超類本身的對象,也能代表其子類的對象的能力。
類的一個成員若想表現多態必須可以被覆蓋:
對於成員變量而言,不會發生覆蓋現象(會隱藏),在子類出現相同變量的定義時隻會隱藏父類變量,因此不會表現多態。同時變量調用在編譯時就會解析,不符合動態綁定的特征;
在成員方法中,靜態方法和final方法(private方法)也不會發生覆蓋現象(會隱藏),因此也不會表現多態性。
因此隻有除靜態方法和final方法以外的方法才會表現多態性。
二、向上類型轉化時
丟失添加的方法和字段,剩餘的為:
基類字段
基類靜態方法或final方法 //前二者為不能被覆蓋的成員,因此保留,無多態性
基類其他方法(若被子類覆蓋則為子類覆蓋的新方法)