介面(inte***ce)的應用場合:
類與類之前需要特定的介面進行協調,而不在乎其如何實現。
作為能夠實現特定功能的標識存在,也可以是什麼介面方法都沒有的純粹標識。
需要將一組類視為單一的類,而呼叫者只通過介面來與這組類發生聯絡。
需要實現特定的多項功能,而這些功能之間可能完全沒有任何聯絡。
抽象類(abstract class)的應用場合:
一句話,在既需要統一的介面,又需要例項變數或缺省的方法的情況下,就可以使用它。最常見的有:
定義了一組介面,但又不想強迫每個實現類都必須實現所有的介面。可以用abstract class定義一組方法體,甚至可以是空方法體,然後由子類選擇自己所感興趣的方法來覆蓋。
某些場合下,只靠純粹的介面不能滿足類與類之間的協調,還必需類中表示狀態的變數來區別不同的關係。abstract的中介作用可以很好地滿足這一點。
規範了一組相互協調的方法,其中一些方法是共同的,與狀態無關的,可以共享的,無需子類分別實現;而另一些方法卻需要各個子類根據自己特定的狀態來實現特定的功能
抽象類和介面的區別與應用場景
介面和抽象類有什麼區別 在應用場景下,選擇使用介面和抽象類的依據是什麼?一 抽象類和介面在語法上的異同 1 相同點 都不能被例項化 2 不同點 第一點 介面是抽象類的變體,介面比抽象類更加抽象,介面中所有的方法都是抽象的。第二點 每個類只能繼承乙個抽象類,但是可以實現多個介面 第三點 抽象類中不一定...
介面和抽象類的應用場景
舉?來說,要描述乙個人 抽象類表示它是什麼 這個人身高 體重 家庭住址 側重用來定義某個領域的固有屬性,也就是本質。介面表示它能做什麼 這個人會打球 游泳 側重用來定義某個領域的擴充套件功能,也就是物件的行為。介面和抽象類的使用場景 當需要為一些類提供公共的實現 時,應優先考慮抽象類。因為抽象類中的...
抽象類和介面的區別以及使用場景
兩者都是抽象類,都不能例項化。inte ce實現類及abstrct class的子類都必須要實現已經宣告的抽象方法。inte ce需要實現,要用implements,而abstract class需要繼承,要用extends。乙個類可以實現多個inte ce,但乙個類只能繼承乙個abstract c...