看板 AndroidDev 關於我們 聯絡資訊
各位版友好, 發現有一種寫法如下, class Father{} class Child extend Father { public void test(){} } main() { Father father=new father(); ((Child)father).test(); } 請問((Child)father).test();用法的名稱為何? 這樣子呼叫有什麼好處呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 42.72.176.42 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/AndroidDev/M.1600054870.A.2E6.html
ssccg: 你有跑過? 這會ClassCastException 09/14 11:46
ssccg: father不是Child,不能cast成Child 09/14 11:46
LPH66: 名詞叫做 downcast, 不過如樓上所說要真的參照子類別才能轉 09/14 13:10
LPH66: 用途基本上是有時你一開始拿到的只能是父類別參照 09/14 13:12
LPH66: 但你能夠確定 (不論透過設計或是透過 instanceof) 09/14 13:13
LPH66: 它其實參照到某一個子類別, 那你就能轉成子類別參照 09/14 13:13
LPH66: 進而運用子類別才有的成員 09/14 13:13