看板 java 關於我們 聯絡資訊
我用Java SE技術手冊 良葛格 這本想提問題 (第六章 6-7頁) 一個遊戲 腳色(Role)類別 劍士(SwordsMan)、魔法師(Magician) 則是繼承了 Role類別的所有基本腳色該有的東西 也就是 SwordsMan is-a Role , Magician is-a Role 通常在Java 看到的實作劍士(SwordsMan)、魔法師(Magician) 通常都會這樣寫:(1) SwordsMan role1 = new SwordsMan(); Magician role2 = new Magician(); 但是,通常也會看到這樣寫:(2) Role role1 = new SwordsMan(); Role role2 = new Magician(); 我想請問的是這兩種寫法有什麼差別? 因為現在遇到看不懂的地方也包含 就我的認知是應該這樣寫 ArrayList<Map<String,Object>> list = new ArrayList<Map<String,Object>>(); 但是看到這 就不知道為什麼 可以這樣寫 用意何在? List<Map<String,Object>> list = new ArrayList<Map<String,Object>>(); 就是想問說(1)與(2) 這樣的寫法 有什麼差別呢??? (2) 的寫法有什麼用意??? 謝謝大家~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 113.196.180.48 ※ 編輯: SamLucien 來自: 113.196.180.48 (07/31 18:02) ※ 編輯: SamLucien 來自: 113.196.180.48 (07/31 18:02)
chunhsiang:主要就是多型 可以化簡背後複雜的東西 07/31 18:11
jtorngl:(2) 可以new LinkedList<xxx>()或任何 is a List的class 07/31 20:52
jtorngl:Role的問題,可以看head first design pattern第一章 07/31 20:53
jtorngl:如果java的polymorphism你看不懂的話 07/31 20:54
jtorngl:head first java說明多型時是用動物(園)當例子,也容易懂 07/31 20:56
n52095467:宣告為Role的話以後轉職比較方便 08/01 00:34
kaocoming:樓上真是一語道破 簡單易懂的解釋 08/01 09:01
adrianshum:其實樓樓上反而是說錯了。轉職代表是某人由Swordman 轉 08/01 09:18
adrianshum:成 Magician, 這種寫法並不會讓這事變得容易 08/01 09:19
abcf:初心者可以轉職成任何職業 劍士沒辦法轉職成馴獸師 他沒說錯 08/01 11:39
andymai:初心者到職業的階段~算是"轉職"嗎?因為每個人可以做每種職 08/01 12:51
andymai:業~但是職業間無法互相轉換~"轉職"應該是指後者吧... 08/01 12:53