
→ gama79530: 只有一般的class可以new,其他都不行 11/13 14:39
→ gama79530: 第一個問題你可以用關鍵字"動態繫結"去google 11/13 14:43
推 lemon651: Animal是interface 定義了應該move 但是Human這個class 11/13 15:02
→ lemon651: 實踐了move 舉例來說狗也是animal人也是animal但是move 11/13 15:02
→ lemon651: 的速度或方式可以不一樣 就是各自的類去實踐定義 11/13 15:02
→ lemon651: 沒看清楚 他是abstract class差不多意思 abstract class 11/13 15:03
→ lemon651: 可以預定義move 11/13 15:03
→ lemon651: 他這邊是直接override了 11/13 15:03
→ LZN: new Human()就表示實際產生是Human instance, 而Animal a = X 11/13 15:07
→ LZN: 表示把X在變數a中當作Animal來操作, 因此a可以使用Animal所 11/13 15:10
→ LZN: 定義的method, 而method到底怎運作是看該X到底是什麼instance 11/13 15:11
推 toy9986619: 介面不能new 出物件 11/18 00:24
→ toy9986619: 抽出來做介面的原因是因為寫在class也要繼承的情況下 11/18 00:26
→ toy9986619: ,有修情況會變得很怪 11/18 00:26
→ toy9986619: 例如行走好了,動物可以行走,機器人可以行走, 11/18 00:26
→ toy9986619: 如果為了維護而把行走寫在動物,要機器人繼承動物的 11/18 00:26
→ toy9986619: 話就會變得很怪 11/18 00:26
→ toy9986619: 所以寫成介面,預先告知有哪些method 11/18 00:29
→ toy9986619: 實作介面的class必須實作出在介面定義的method 11/18 00:29
→ toy9986619: 這樣用介面的變數(遙控器)去參考物件(實體)時才能進 11/18 00:29
→ toy9986619: 行操作 11/18 00:29