抽象類
抽象類要注意的細節:
- 如果一個方法沒有方法體,那么該方法必須用abstract修飾。
- 如果一個類含有抽象方法,那么這個類肯定是一個抽象類或者接口。
- 抽象類不能創建對象。
- 抽象類是含有構造方法的。
- 抽象類可以存在抽象方法和非抽象方法。
- 抽象類可以不存在抽象方法。
- 非抽象類繼承抽象類的時候,必須要把抽象類中所有抽象方法實現。
abstract不能與以下關鍵字同時使用:
- abstract不能與static共同修飾一個方法。
- 不能與private共同修飾一個方法。
- 不能與final關鍵字共同修飾一個方法。
接口
接口的作用:
- 程序解耦。(???)
- 定義約束規范。
- 拓展功能。
接口要注意細節:
- 接口中成員變量都是常量,默認的修飾符是public static final。
- 接口中的方法全部都是抽象方法,默認的修飾符是public abstract。
- 接口不能創建對象。
- 接口沒有構造函數。
- 非抽象類通過implements實現接口的時候,必須要把接口中所有方法實現。
多態
多態:
- 父類的引用類型變量指向了子類的對象,或者是接口的引用類型變量指向了接口實現類的對象。
多態要注意的細節:
- 多態情況下,如果子父類存在同名的成員變量時,訪問的是父類的成員變量。
- 多態情況下,如果子父類存在同名的非靜態函數時,訪問的是子類的成員函數。
- 多態情況下,如果子父類存在同名的靜態函數時,訪問的是父類的成員函數。
- 多態情況下,不能訪問子類特有的成員。
多態的應用:
- 多態形參類型用于的時候,可以接收更多類型的數據。
- 多態用于返回值類型的時候,可以返回更多類型的數據。