[問題] 新手關於物件導向的問題

看板java作者 (a350330)時間6年前 (2018/11/13 13:40), 編輯推噓2(2019)
留言21則, 4人參與, 6年前最新討論串1/1
https://i.imgur.com/BdHF4bX.jpghttps://i.imgur.com/xrfqFFA.jpg
第二題我很確定它的解析完全錯誤…… 只是我不太懂為什麼它是呼叫human的move而不是animal的move? 然後請教各位前輩介面可以生成物件嗎? 像是 Movable m = new Mammal()合法嗎? 請大家幫幫忙了 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 49.216.148.139 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1542087642.A.DB8.html

11/13 14:39, 6年前 , 1F
只有一般的class可以new,其他都不行
11/13 14:39, 1F

11/13 14:43, 6年前 , 2F
第一個問題你可以用關鍵字"動態繫結"去google
11/13 14:43, 2F

11/13 15:02, 6年前 , 3F
Animal是interface 定義了應該move 但是Human這個class
11/13 15:02, 3F

11/13 15:02, 6年前 , 4F
實踐了move 舉例來說狗也是animal人也是animal但是move
11/13 15:02, 4F

11/13 15:02, 6年前 , 5F
的速度或方式可以不一樣 就是各自的類去實踐定義
11/13 15:02, 5F

11/13 15:03, 6年前 , 6F
沒看清楚 他是abstract class差不多意思 abstract class
11/13 15:03, 6F

11/13 15:03, 6年前 , 7F
可以預定義move
11/13 15:03, 7F

11/13 15:03, 6年前 , 8F
他這邊是直接override了
11/13 15:03, 8F

11/13 15:07, 6年前 , 9F
new Human()就表示實際產生是Human instance, 而Animal a = X
11/13 15:07, 9F

11/13 15:10, 6年前 , 10F
表示把X在變數a中當作Animal來操作, 因此a可以使用Animal所
11/13 15:10, 10F

11/13 15:11, 6年前 , 11F
定義的method, 而method到底怎運作是看該X到底是什麼instance
11/13 15:11, 11F

11/18 00:24, 6年前 , 12F
介面不能new 出物件
11/18 00:24, 12F

11/18 00:26, 6年前 , 13F
抽出來做介面的原因是因為寫在class也要繼承的情況下
11/18 00:26, 13F

11/18 00:26, 6年前 , 14F
,有修情況會變得很怪
11/18 00:26, 14F

11/18 00:26, 6年前 , 15F
例如行走好了,動物可以行走,機器人可以行走,
11/18 00:26, 15F

11/18 00:26, 6年前 , 16F
如果為了維護而把行走寫在動物,要機器人繼承動物的
11/18 00:26, 16F

11/18 00:26, 6年前 , 17F
話就會變得很怪
11/18 00:26, 17F

11/18 00:29, 6年前 , 18F
所以寫成介面,預先告知有哪些method
11/18 00:29, 18F

11/18 00:29, 6年前 , 19F
實作介面的class必須實作出在介面定義的method
11/18 00:29, 19F

11/18 00:29, 6年前 , 20F
這樣用介面的變數(遙控器)去參考物件(實體)時才能進
11/18 00:29, 20F

11/18 00:29, 6年前 , 21F
行操作
11/18 00:29, 21F
文章代碼(AID): #1RwcFQsu (java)
文章代碼(AID): #1RwcFQsu (java)