導語:抽象方法是沒有方法體的,這樣的呼叫無意義。那麼Java中的抽象類有什麼意義呢?讓我們瞭解一下吧!
(1)多個類有相同的方法宣告,但是方法體不一樣。這個時候,我們考慮把方法宣告進行抽取。
讓子類繼承後,自己去實現方法體。沒有方法體的方法,我們需要用抽象標誌下。
抽象的關鍵字是:abstract。
(2)抽象類:
該方法稱為抽象方法,包含抽象方法的類就是抽象類。
(3)抽象類的特點:
A:抽象類和抽象方法都要用abstract進行修飾
B:抽象類不能被例項化
C:抽象類中不一定有抽象方法,但是,有抽象方法的類一定是抽象類。
(4)抽象類中資料的特點
A:成員變數
抽象類中可以有變數,也可以有常量。
B:成員方法
抽象類中可以有抽象方法,也可以有非抽象方法。
C:構造方法
抽象類是一個類,所以,它有構造方法。
雖然本身不能例項化。但是可以給子類例項化使用。
(5)抽象類中的問題
A:抽象類中是否有構造方法?能不能被例項化?如果不能,為什麼有構造方法?
抽象類有構造方法。
抽象類不能被例項化。
抽象類中的構造方法供子類例項化呼叫。
B:抽象關鍵字abstract不可以和哪些關鍵字共存?
**private:
私有內容子類繼承不到,所以,不能重寫。
但是abstract修飾的方法,要求被重寫。兩者衝突。
**final
final修飾的'方法不能被重寫。
而abstract修飾的方法,要求被重寫。兩者衝突。
**static
假如一個抽象方法能通過static修飾,那麼這個方法,就可以直接通過類名呼叫。
而抽象方法是沒有方法體的,這樣的呼叫無意義。所以,不能用static修飾。
C:抽象類中可不可以沒有抽象方法?如果可以,這樣的類有什麼用嗎?
抽象類可以沒有抽象方法。
抽象類中沒有抽象方法的作用,只是為了不讓別的類建立該抽象類物件。這個在awt中有體現。