当前位置 - 股票行情交易網 - 文娛動態 - java中什麽是接口?接口的作用是什麽?

java中什麽是接口?接口的作用是什麽?

抽象類和接口

什麽是接口:接口就是壹些方法特征的集合------接口是對抽象的抽象。

什麽是抽象類:抽象類對某具體類型的部分實現------抽象類是對具體的抽象。

方法特征包括:方法的名字、參數的數目、參數的類型。不包括:返回類型、參數名字、和拋出的異常。

接口是類型轉換的前提、是動態調用的保證。實現某壹接口就完成了類型的轉換(多重繼承);動態調用只關心類型,不關心具體類。

--------------------------------------------------------------------------------------------------------------------------------------

java接口(抽象類)用來聲明壹個新的類型。

Java設計師應當主要使用接口和抽象類將軟件單位與內部和外部耦合起來。

換言之,應當使用java接口和抽象類而不是具體類進行變量的類型聲明、參數的類型聲明、方法的返回類型聲明、以及數據類型的轉換等。

當然壹個更好的做法是僅僅使用接口,而不是抽象類來做上面這些事情。

在理想的情況下,壹個具體類應當只實現接口和抽象類中聲明的方法,而不應當給出多余的方法!

接口和抽象類壹般作為壹個類型等級結構的起點。

接口比抽象類更為抽象所以優先使用接口聲明抽象類型!

--------------------------------------------------------------------------------------------------------------------------------------

抽象類和接口

抽象類僅提供壹個類的部分實現。抽象類可以有實例變量、以及壹個或多個構造函數。抽象類可以同時又抽象方法和具體方法。

壹個抽象類不會有實例,它的構造函數不能被客戶端用來創建實例。壹個抽象類的構造函數可以被其子類調用,從而使壹個抽象類的所有子類可以有壹些***同的實現,而不同的子類可以在此基礎上有不同的實現。

接口比抽象類更為抽象所以有線使用接口聲明抽象類!

抽象類是用來繼承的。(具體類不是用來繼承的,“只要有可能不要從具體類繼承---scottmeryes”)。

抽象類設計原則:

1.抽象類應當擁有盡可能多的代碼!(公用方法)。代碼集中於抽象的方向。

2.抽象類應當擁有盡可能少的數據!(公***屬性)。數據集中於具體的方向。

繼承復用的使用條件-------PeterCoad條件

1.子類是超類的壹個特殊種類而不是超類的壹個角色!正確區分“Has-A”“Is-A”的關系。

2.子類之間不應發生替換!?

3.子類具有擴展超類的責任,而不是置換(Override)掉或註銷(Nullify)掉的責任。

4.只有在分類學角度上有意義時才可以使用繼承,不要從具體類繼承。

接口和抽象類的區別:

1.抽象類可以提供某些方法的實現。如果向抽象類中加入壹個新的具體的方法,那麽所有的子類壹下子就得到了這個方法。接口做不到這壹點!(這也許是抽象類的唯壹優點)。

2.因java的單根結構限制,只類只能實現壹個抽象類類型,而接口類型這無此限制。這使抽象類作為類型定義工具的效能落後於接口。接口是定義混合類型(實現多從繼承)的理想工具:用壹個

3.從代碼重構的角度上講,將壹個具體類重構成壹個接口的實現是很容易的。

研究好這中間的差別很有用的!