Java abstract class 與interface對比
前言
abstract class和interface都是Java用來描述抽象體的,不知道是否有同學跟我一樣對這兩者的語法層面的區別以及如何選擇這兩者還存在著疑惑,反正接下來,讓我詳細介紹一下abstract class和interface。
理解抽像類
在面向對象的概念中,所有的對像都是通過類來描述的。但是反過來卻不是這樣,並不是所有的類都是用來描述對象的。因為這個類中可能沒有足夠的信息來描述一個具體的對象,這樣的類就是抽像類(ps:注意這裡的抽像類不是單指abstract class)。抽像類往往用來描述我們對問題領域進行分析和設計後得出來的抽象概念,是對一系列看上去不同,但是本質相同的具體概念的抽象。
abstract class 和interface語法區別
抽像類和接口的區別如下:
abstract class和interface的使用區別
abstract class的設計體現了”is-a”的關係,而interface體現的是”has-a”的關係。
什麼時候使用接口?
你想擴展我給你的東西,就必須實現必需的接口。例如,實現Comparable接口的對象可以直接使用sort方法Collections.sort(List list)排序。
什麼時候使用抽像類?
如果你有一個抽像類,它提供了很多通用的功能,並且抽像出了每個子類需要自己去實現的方法。而你設計的東西恰好基於這個類,那這個實現你就可以去繼承這個抽像類,然後實現自己獨特的方法。
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!