介面和抽象類的區別
抽象類和介面的意義
抽象類是對成員變數和方法的抽象,是一種is-a 關係,是為了解決**復用問題,介面僅僅是方法的抽象,是一種has-a 關係,表示具有某種行為特性,是為了解決解耦問題,
如何決定使用抽象類還是介面
基於介面(抽象)而非實現程式設計
越抽象,越脫離具體某一細節的設計,越能提高**的靈活性,越能應對未來的需求變化
函式命名要具有抽象思維,不要暴露實現細節
封裝具體的實現細節
為實現類定義抽象的介面,具體的實現類都依賴統一的介面定義,遵從一致的協議,呼叫者依賴介面而不是實現類
避免過度使用抽象,尊從設計初衷,介面實現分離,封裝不穩定的實現,暴露穩定的介面,即給呼叫者使用的**要穩定
少用繼承,多用組合
附上大牛課程,需要可以直接去學習
2018 11 05 介面和抽象類
一 抽象類 抽象方法碧血用abstract關鍵字進行修飾。如果乙個類含有抽象方法,則稱這個類為抽象類,抽象類必須在類前用abstract關鍵字修飾。抽象類中沒有具體實現的方法,所以不能用抽象類建立物件。抽象類就是為了繼承而存在的,如果你定義了乙個抽象類,卻不去繼承它,那麼等於百變建立了這個抽象類,因...
JAVA學習筆記7 介面 抽象類總結
介面與抽象類 總結 同都是不斷向上抽取而來的 異1 抽象類需要被繼承 而且只能單繼承 介面需要被實現 而且可以多實現 2 抽象類中可以定義抽象方法和非抽象方法 子類繼承可以直接使用非抽象方法 而介面必須定義抽象方法 必須由子類去實現 3 抽象類的繼承是所有關係 定義該體系的基本共性內容 比如 程式設...
(學習筆記)抽象類和介面
最近準備校招,所以複習的時候想來記錄一下學習的內容。首先聊聊介面類吧 1 抽象類的含義 包含抽象方法的類叫做抽象類。如果乙個類包括乙個或者多個抽象方法,該類必須被限定為抽象方法。2 抽象類的知識點 1.含有abstract修飾符的class即為抽象類,abstract類不能建立例項物件。2.含有ab...