※ 引述《jetswayss (小犬)》之銘言:
: 我也是初學JAVA 試著闡述自己的想法
: 如有錯誤請大家教導 ><
: 基本上分為 class 和 interface
: class在分為 abstract和 concrete
: 繼承是多型的基礎,多型是繼承的目的
: 1.
: 而class跟interface本質上就不太一樣
: interface強調的是行為
: class強調的是實體
: 2.
: concrete class和 abstract class
: 最大差別在於能不能直接被instantiated
: Animail 是一種實體 非行為 卻又不能被直接實體化
: 就屬於abstract class的範疇裡
: Cat 是一種實體 非行為 可以被實體化
: 屬於concrete class的範疇
: 而最初的問題 "抽象跟界面比較分不出差異"
: 相異點: 本質,設計概念,目的 (一個是class 一個是interface 追求的目的不相同)
: 相同點: 都有待實作之方法
: ※ 引述《pttworld (批踢踢世界)》之銘言:
: : 抽象類別可實作方法。
: : 詳細請我們Java版的透"抽"版主回應吧,如果願意討論的話。
那我大概知道interface跟abstract的差異
以下是我的理解,有誤請訂正
abstract是被class extends過去,所以屬繼承,所以可以加新方法 ,而且必須所有方法
都實作出來
(精華區那個忘記動物叫的例子)
interface是被class implements,所以只能實作interface的方法,不能新增方法
還有一個問題
因為兩者都提供方法而不實作
我看書上範例
把方法重新打過一次
那用interface去implement跟直接打與什麼差異?
只是compiler會幫你檢查而已?