作者Dong0129 (阿東)
看板AndroidDev
標題[問題] 父類別使用子類別定義的方法
時間Mon Sep 14 11:41:08 2020
各位版友好,
發現有一種寫法如下,
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://webptt.com/m.aspx?n=bbs/AndroidDev/M.1600054870.A.2E6.html
1F:→ ssccg: 你有跑過? 這會ClassCastException 09/14 11:46
2F:→ ssccg: father不是Child,不能cast成Child 09/14 11:46
3F:推 LPH66: 名詞叫做 downcast, 不過如樓上所說要真的參照子類別才能轉 09/14 13:10
4F:→ LPH66: 用途基本上是有時你一開始拿到的只能是父類別參照 09/14 13:12
5F:→ LPH66: 但你能夠確定 (不論透過設計或是透過 instanceof) 09/14 13:13
6F:→ LPH66: 它其實參照到某一個子類別, 那你就能轉成子類別參照 09/14 13:13
7F:→ LPH66: 進而運用子類別才有的成員 09/14 13:13