| 導購 | 订阅 | 在线投稿
分享
 
 
 

《java與模式》筆記-----抽象類和接口

來源:互聯網  2008-05-31 12:11:02  評論

抽象類和接口

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

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

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

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

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

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

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

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

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

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

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

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

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

抽象類和接口

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

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

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

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

抽象類設計原則:

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

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

繼續複用的使用條件------- Peter Coad條件

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

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

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

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

抽象類和接口 什麽是接口:接口就是一些方法特征的集合------接口是對抽象的抽象。 什麽是抽象類:抽象類對某具體類型的部分實現------抽象類是對具體的抽象。 方法特征包括:方法的名字、參數的數目、參數的類型。不包括:返回類型、參數名字、和抛出的異常。 接口是類型轉換的前提、是動態調用的保證。實現某一接口就完成了類型的轉換(多重繼續);動態調用只關心類型,不關心具體類。 -------------------------------------------------------------------------------------------------------------------------------------- Java接口(抽象類)用來聲明一個新的類型。 Java設計師應當主要使用接口和抽象類將軟件單位與內部和外部耦合起來。 換言之,應當使用java接口和抽象類而不是具體類進行變量的類型聲明、參數的類型聲明、方法的返回類型聲明、以及數據類型的轉換等。 當然一個更好的做法是僅僅使用接口,而不是抽象類來做上面這些事情。 在理想的情況下,一個具體類應當只實現接口和抽象類中聲明的方法,而不應當給出多余的方法! 接口和抽象類一般作爲一個類型等級結構的起點。 接口比抽象類更爲抽象所以優先使用接口聲明抽象類型! -------------------------------------------------------------------------------------------------------------------------------------- 抽象類和接口 抽象類僅提供一個類的部分實現。抽象類可以有實例變量、以及一個或多個構造函數。抽象類可以同時又抽象方法和具體方法。 一個抽象類不會有實例,它的構造函數不能被客戶端用來創建實例。一個抽象類的構造函數可以被其子類調用,從而使一個抽象類的所有子類可以有一些共同的實現,而不同的子類可以在此基礎上有不同的實現。 接口比抽象類更爲抽象所以有線使用接口聲明抽象類! 抽象類是用來繼續的。(具體類不是用來繼續的,“只要有可能不要從具體類繼續---scott meryes”)。 抽象類設計原則: 1, 抽象類應當擁有盡可能多的代碼!(公用方法)。代碼集中于抽象的方向。 2, 抽象類應當擁有盡可能少的數據!(公共屬性)。數據集中于具體的方向。 繼續複用的使用條件------- Peter Coad條件 1. 子類是超類的一個非凡種類而不是超類的一個角色!正確區分“Has-A”“Is-A”的關系。 2. 子類之間不應發生替換!? 3. 子類具有擴展超類的責任,而不是置換(Override)掉或注銷(Nullify)掉的責任。 4. 只有在分類學角度上有意義時才可以使用繼續,不要從具體類繼續。
󰈣󰈤
王朝萬家燈火計劃
期待原創作者加盟
 
 
 
>>返回首頁<<
 
 
 
 
 熱帖排行
 
 
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有