1. 在Java中將一個字類對象賦值給父類變量是合法的,這也是實現多態(即方法的動態分派)的前提條件之一。
2. 在Java中父類賦值同樣也適用於數組。可以將一個子類數組賦值給一個父類數組變量。但可能會出現如下的問題:
son[] sons = new son[10]; father[] fathers = sons; fathers[0] = new father();
上面的代碼編譯時沒有報錯,因為在father[]數組中存儲father對象是合法的。但是,這里fathers和sons引用相同的son[]數組,它不能持有更上層的父類的對象。這個錯誤只能在運行期捕獲,虛擬機會拋出ArrayStoreException異常。