1. 程式人生 > >抽象類和介面的使用場景介紹

抽象類和介面的使用場景介紹

語義上的區別:

首先 類描述的是 這個東西是什麼(強調所屬)?包含了靜態屬性,靜態行為 ,屬性和行為。

而介面 描述的它能做什麼事兒(強調行為)?     只是 靜態常量屬性 和 行為

abstract class的應用場合      一句話,在既需要統一的介面,又需要例項變數或預設的方法的情況下,就可以使用它。最常見的有:      A. 定義了一組介面,但又不想強迫每個實現類都必須實現所有的介面。可以用abstract class定義一組方法體,甚至可以是空方法體,然後由子類選擇自己所感興趣的方法來覆蓋。      B. 某些場合下,只靠純粹的介面不能滿足類與類之間的協調,還必需類中表示狀態的變數來區別不同的關係。

abstract的中介作用可以很好地滿足這一點。      C. 規範了一組相互協調的方法,其中一些方法是共同的,與狀態無關的,可以共享的,無需子類分別實現;而另一些方法卻需要各個子類根據自己特定的狀態來實現特定的功能

其他情況下都是使用 介面。

應該這樣說,我們再開始使用的時候就是用的介面,後來實現的子類裡有些子類有共同屬性,或者相同的方法實現,所以提取出來一個抽象類,作為類和介面的中介。