看板 java 關於我們 聯絡資訊
※ 引述《a07051226 (葡萄糖)》之銘言: : 那我大概知道interface跟abstract的差異 : 以下是我的理解,有誤請訂正 : abstract是被class extends過去,所以屬繼承,所以可以加新方法 ,而且必須所有方法 : 都實作出來 : (精華區那個忘記動物叫的例子) : interface是被class implements,所以只能實作interface的方法,不能新增方法 : 還有一個問題 : 因為兩者都提供方法而不實作 : 我看書上範例 : 把方法重新打過一次 : 那用interface去implement跟直接打與什麼差異? : 只是compiler會幫你檢查而已? 一定會有的 動作 , 就寫在abstract class 裡, 不一定會有的動作,就寫在 interface 裡 例如 interface bark{ public void 叫(); } abstract class 動物{ public void 叫{ System.out.println("XD"); } } class dog extends 動物 implements bark{ System.out.println("汪");//實作介面的叫 } class cat extends 動物 implements bark{ System.out.println("喵");//實作介面的叫 } ======== 動物會叫, 但各有各的叫法 在叫的時候, 就用介面~ "其實abstract class表示的是"is a"關係,interface表示的是"like a"關係 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.35.194.5 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1428452331.A.E4C.html