Java學習筆記
1. final
a. 聲明類:聲明的類不能有子類
b. 聲明方法:聲明的方法不能被子類所覆寫
c. 聲明變量:聲明的變量是常量,不能被修改(聲明的常量必須大寫,public static final聲明的是全局常量)
2. 抽象類
a. 抽象類是至少有一個抽象方法的的類,抽象方法是隻聲明不實現的方法,聲明抽象方法必須abstract關鍵字,聲明抽象類必須用abstract關鍵字。
b. 抽象類不能直接實例化,想使用抽象類必須依靠子類,一個類繼承了抽象類後必須實現其中的全部抽象方法。
c. 抽象類中允許有構造方法,但是此構造方法不能直接調用,是交給子類調用的,子類對象字實例化過程中永遠首先調用父類的構造方法。
d. 實際抽象只是比普通類多抽象方法而已。
3. 接口
a. 接口是特殊的類,接口是由抽象方法和全局常量組成。定義接口用關鍵字interface。
b. 接口與抽象類一樣要通過子類實現用implements關鍵字。
c. 一個類最多隻能繼承一個類但是可以實現多個接口,class A extends 抽象類B implements 接口C,接口D…{ }。
4. 對象的多態性
a. 方法的重載和方法的覆寫是對象多態性的體現。
b. 對象的多態性體現在子類和父類的相互轉換過程中。向上轉型:父類 父類對象 = 子類的實例 –>自動完成 向下轉型:子類 子類對象 = (子類)父類對象 –> 強制轉型
c. 類型轉換時:向下轉型前用instanceof判斷是否爲同類型的。對象 instanceof 類 ——>返回boolean類型的數據。
5. 抽象類與接口的比較:
NO. |
比較 |
抽象類 |
接口 |
1 |
組成 |
抽象方法、普通方法、構造方法、常量、變量、全局常量 |
抽象方法、全局常量 |
2 |
定義 |
abstract |
interface |
3 |
子類 |
通過extends繼承 |
通過implements實現接口 |
4 |
限制 |
一個類最多能繼承一個抽象類 |
一個類可以同時實現多個接口 |
5 |
關係 |
一個抽象類可以實現多個接口 |
接口不能繼承抽象類能實現多個接口 |
一個類可以包含多個接口 |
一個接口可以包含多個抽象類 |
||
6 |
設計模式 |
模板設計 |
廠類設計、代理設計 |
兩個結合實現適配器設計 |
|||
7 |
實例化 |
通過對象的多態性,通過子類的實例化對對象操作 |
|
8 |
特性 |
- |
一個標準,一種能力 |