※ 引述《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
推
03/24 18:34, , 1F
03/24 18:34, 1F
討論串 (同標題文章)