抽象(abstract)
抽象就是從多個事物中將共性的,本質的內容抽象出來。
抽象類:
Java中可以定義沒有方法體的方法,該方法的具體實現由子類完成,該方法稱為抽象方法,包含抽象方法的類就是抽象類。
由來:
多個對象都具備相同的功能,但是功能具體內容有所不同,那么在抽取過程中,只抽取了功能定義,並未抽取功能主體,那么只有功能聲明,沒有功能主體的方法稱為抽象方法。
抽象類特點:
- 抽象方法一定在抽象類中;
- 抽象方法和抽象類都必須被abstract關鍵字修飾;
- 抽象類不可以用new創建對象,因為調用抽象方法沒意義;
- 抽象類中的抽象方法要被使用,必須由子類復寫其所有的抽象方法后,建立子類對象調用; 如果子類只覆蓋了部分的抽象方法,那么該子類還是一個抽象類;
- 抽象類中可以有抽象方法,也可以有非抽象方法,抽象方法用於子類實例化;
- 如果一個類是抽象類,那么,繼承它的子類,要么是抽象類,要么 重寫 所有抽象方法。
特殊:抽象類中可以不定義抽象方法,這樣做僅僅是不讓該類建立對象。
抽象類的成員特點
-
成員變量
-
可以是變量
-
也可以是常量
-
構造方法
-
有構造方法,但是不能實例化
-
那么,構造方法的作用是什么呢?用於子類訪問父類數據的初始化
-
成員方法
-
可以有抽象方法:限定子類必須完成某些動作
-
也可以有非抽象方法:提高代碼復用性
