abstract class vc interface

abstract class 和 interface 都提供可以不具體實現的方法。其中一個類不能繼承多個abstract方法,但是可以實現多個interface。java類沒有多繼承,但是通過interface來來補充。通過實現過個interface,來實現java多重繼承。 java中所有的對象可以用類來表示,但並不是所有的類都是來描繪對象的。用來描繪某一類對象共有的本質就是抽象。

 

 different 從語言層面講:

abstract class :

可以有 自己的 (private)數據成員。 有些方法可以具體實現。

abstract class可以提供某些方法的部分實現,而interface不可以,這大概就是abstract class唯一的優點吧,但這個優點非常有用。如果向一個抽象類里加入一個新的具體方法時,那麼它所有的子類都一下子都得到了這個新方法,而 interface做不到這一點,如果向一個interface里加入一個新方法,所有實現這個接口的類就無法成功通過編譯了,因爲你必須讓每一個類都再 實現這個方法才行。

 

 

 interface :

不可能有自己的數據成員,只能有靜態的,不能被修改的 數據成員。即就是 static final。

所有的成員方法都是abstract的。從這方面說interface是abstract class 的一種特殊情況。

發佈了40 篇原創文章 · 獲贊 0 · 訪問量 4388
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章