Java 抽象(abstract)

Java 抽象(abstract)

抽象

  • 概念
    • 抽象就是從多個事物中將共性的,本質的內容抽象出來
  • 抽象類
    • Java中可以定義沒有方法體的方法,方法的具體實現由子類完成,該方法稱爲抽象方法,包含抽象方法的類就是抽象類。
  • 由來
    • 多個對象具有相同的功能,但功能具體內容有所不同,那麼在抽取過程中,只抽取了功能定義,並未抽取功能主體,那麼只有功能定義,沒有功能主體的方法稱爲抽象方法。
  • 抽象類特點

    1. 抽象方法一定在抽象類中。
    2. 抽象方法和抽象類必須被abstract修飾。
    3. 抽象類不能用new創建對象,因爲調用抽象方法沒有意義。
    4. 抽象類中的抽象方法要被使用,必須由子類重寫其所有的抽象方法後,創建子類對象調用;如果子類只覆蓋了部分抽象方法,那麼該子類還是一個抽象類。
    5. 抽象類中可以有抽象方法,也可以由非抽象方法。
    6. 如果一個類是抽象類,那麼繼承它的子類要麼是抽象類,要麼重寫所有的抽象方法。
  • 抽象類的成員特點

    • 成員變量:可以是變量,也可以是常量

    • 構造方法:有構造方法

    • 成員方法:可以是抽象方法,也可以是非抽象方法

  • 抽象類注意事項

    • 抽象類不能被實例化,爲什麼還要有構造函數?

      只要是class定義的類裏面肯定有構造函數。抽象類中的構造函數是給子類實例化的。

    • 一個類沒有抽象方法,爲什麼要定義爲抽象類?

      (不想被繼承,還不想被實例化)

    • 抽象類關鍵字不能和哪些關鍵字共存

      • final,如果方法被抽象,就需要被重寫,而final是不能被重寫的,所以衝突。

      • static,被static修飾的方法可以直接用類名調用,而調用抽象方法沒有意義。

      • private,被private修飾的方法被私有,子類無法重寫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章