看板 java 關於我們 聯絡資訊
※ 引述《freewhat (這就是人生嗎)》之銘言: : 我剛剛實際run了一下程式,再詳細看了書, : 原來書的答案沒錯~ 他是寫說 compile error 的是 只有2 : 1是run time時期才有問題,compile time 是可以過的。 : 是我搞錯了~ QQ : 那這樣我又有一個問題, : 1是run time時期會有ClassCastException,這我是了解的, : 那為什麼2的錯誤是在編譯時期呢? : (2的錯誤: inconvertible types) : 是因為強制轉型的檢查是在編譯時期處理的嗎? : 腦袋快打結了XD 因為 String 和 Building 根本是在不同的 Inheritance chains 上 Object --- String \ -- Building --- Barn 如果你能用 Building 型態去 reference 一個物件(如變數 build1), 該物件就絕對不可能是 String (或著 String 的 sub-class)。 這種檢查在 Compile 時期就找得出來了。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.132.160.117
freewhat:感謝 03/24 18:34