1. 程式人生 > >什麼時候使用介面?什麼時候使用抽象?選擇Java介面還是抽象類

什麼時候使用介面?什麼時候使用抽象?選擇Java介面還是抽象類

1.關於介面的理解。 
  介面從更深層次的理解,應是定義(規範,約束)與實現(名實分離的原則)的分離。 
  我們在一般實現一個系統的時候,通常是將定義與實現合為一體,不加分離的,我認為最為理解的系統設計規範應是所有的定        義與實現分離,儘管這可能對系統中的某些情況有點繁煩。 
  介面的本身反映了系統設計人員對系統的抽象理解。 
  介面應有兩類:第一類是對一個體的抽象,它可對應為一個抽象體(abstract class); 
  第二類是對一個體某一方面的抽象,即形成一個抽象面(interface); 


  一個體有可能有多個抽象面。 
  抽象體與抽象面是有區別的。

2.設計介面的另一個不可忽視的因素是介面所處的環境(context,environment),系統論的觀點:環境是系統要素所處的空間與外部影響因素的總和。任何介面都是在一定的環境中產生的。因此環境的定義及環境的變化對介面的影響是不容忽視的,脫離原先的環境,所有的介面將失去原有的意義。

3.按照元件的開發模型(3C),它們三者相輔相成,各司一面,渾然一體,缺一不可。

介面與抽象類的區別:

1.   抽象類可以包含各種類型範圍的屬性值, 介面只能有靜態常量的屬性值

2.   抽象類可以包含抽象方法和非抽象方法,  介面包含的方法只能是抽象方法

3.   抽象類和介面都不能例項化, 但是抽象類有構造方法, 介面沒有構造方法

4.   抽象類只能單繼承, 介面可以多個實現

http://blog.csdn.net/Remember_Y/article/details/49022093