一、構造方法
- 任何class都有構造方法。
- 作用:用以初始化實例
- 若一個類沒有定義構造方法,則編譯器會自動生成一個默認的無參構造方法。若已定義一個有參數的構造方法,則系統不會再自動生成無參構造方法
二、方法重載(Overload)
- 定義:方法名相同,但是參數不同(與返回值無關,通常返回值類型都是相同的)
三、繼承
- 除object之外,任何類都有且只有一個父類
- 子類中使用super表示父類
- 子類的構造器,第一行都是調用父類的構造方法。若沒有明顯的調用,則默認調用 super()即父類無參構造方法
- 子類可以安全的轉型爲父類。父類轉型爲子類時,可以先使用instanceof進行類型的判斷
四、多態
- 覆寫(重載)Override:子類中如果定義了一個與父類方法簽名完全相同的方法
- 定義:Java具體方法的調用是由運行時真正的實際類型決定的,而非變量的聲明類型
- 子類覆寫方法中,可以使用super調用父類方法
- 由final修飾的方法,不可以被子類覆寫。修飾的類不可以被繼承。修飾的字段的值不可以被修改,但是可以在構造方法中賦值,兩者只能取其一,即初始化賦值,便不可構造方法中賦值,反之亦然。
五、抽象類
- 關鍵字:abstract
- 由abstract修飾的方法稱爲抽象方法,沒有具體的實現。修飾的類爲抽象類,不可被實例化
- 擁有抽象方法的類必爲抽象類。抽象類的子類必須實現抽象抽方法
- 面向抽象編程的本質:上層代碼只定義規範;不需要子類就可以實現邏輯;具體的業務由不同的子類去實現,調用者並不關心
六、接口
- 本質:定義接口規範
- 關鍵字:interface
- 接口方法默認是public abstract
- 一個類別只能繼承一個父類,但是可以實現多個接口,使用implements
-
抽象類 接口 繼承 extends一個父類 implements多個接口 字段 可以 不可 抽象方法 可以 可以 非抽象方法 可以 可以定義default方法 - 接口之間的繼承使用extends
- default方法:由default關鍵字修飾,具有具體實現,子類中可以不必覆寫
七、靜態字段與靜態方法
1. 關鍵字:static
2. 一個類中所有實例共享類中的靜態字段與靜態方法
3. 靜態方法內無法訪問this變量,也無法訪問實例字段
4. 接口方法內可以定義public static final類型的字段,其中public static final可以省略掉
八、包
1. 機制:避免class命名的衝突
2. import static導入一個類的靜態字段和靜態方法
九、作用域
1. 一個.java文件中,只能包含一個public類,可以包含多個非public類
十、模塊**********************重點