1. 程式人生 > >易學筆記-JAVA入門語言總結-第7章 複用類

易學筆記-JAVA入門語言總結-第7章 複用類

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