易學筆記-JAVA入門語言總結-第7章 複用類
阿新 • • 發佈:2018-11-22
- 所謂的組合就是在一個類的資料成員中宣告另外一個類的物件,就好像宣告一個基本型別一樣:第7章 複用類/7.1 組合語法
- 在繼承類中,通過super指明呼叫的是父類的方法 第7章 複用類/7.2 繼承語法
- 類的初始化
- 基類的構造方法一層層網上被呼叫,比如 基類A,class B extends A,class C extends B,那麼在 new C的時候,就先呼叫A的構造方法,再呼叫B的構造方法,最後才呼叫C的構造方法 第7章 複用類/7.2 繼承語法/7.2.1 初始化基類
- 基類和匯出類初始化順序:第7章 複用類/7.9 初始化以及類的載入/7.9.1 繼承和初始化
- 基類static成員域
- 匯出類static成員域
- main方法
- 基類非static成員域
- 基類構造方法
- 匯出類非static成員域
- 匯出類構造方法
- 繼承之間的代理指的是:第7章 複用類/7.3 代理
- 使用代理:先在匯出類中宣告基類的物件,然後再宣告過載基類的方法,過載方法的實現邏輯是通過基類的物件呼叫基類的方法
- 不適用代理:直接通過匯出類的物件呼叫基類的方法,前提是匯出類沒有過載基類的方法
- try中的finally就是無論是否有異常都會執行finally中的語句:
- 物件的清理順序和宣告呼叫順序是相反的:第7章 複用類/7.4 結合使用組合和繼承/7.4.1 確保正確清理
- 對於繼承和組合到底怎麼選擇:第7章 複用類/7.5 在組合和繼承之間選擇
- 如果只想暴露一個類,不想讓別人知道類中還有其它類,就用組合
- 如果只想用一下現有的類,而不是對現有的類進行擴充套件,就用組合
- 如果想擴充套件現有的類,就用繼承
- 如果想向上引用,就用繼承
- 對於final引用物件
- 如果是基本型別則為常量,常量的值不能修改;常量可以賦值給其它變數,其它變數的值可以修改
- 如果是物件型別,那麼該物件引用就不能引用其它物件了,但是該引用可以賦值給其它引用;無論是否final,物件本身都可以修改
- 對於final方法:第7章 複用類/7.8 final關鍵字/7.8.2 final方法
- 如果一個方法宣告為final則匯出類不能重寫它,也就是不能宣告一個和基類相同的方法
- 所有private的方法都是final的,如果匯出類中聲明瞭同名的方法,不會覆蓋基類的方法
- 對於final類:說明整個類都不能被修改,也就是不能被繼承了第7章 複用類/7.8 final關鍵字/7.8.3 final類
- 對於static方法
- 基類聲明瞭static方法,子類可以覆蓋
- 如果static方法是私有的,也只能在本類的方法內部使用,不能外部呼叫
- 通過類名直接呼叫static方法,呼叫的都是各自類的static方法,和基礎無關
- 通過向上引用,父類指向子類,這時候呼叫都是父類的static方法