1. 程式人生 > >複習筆記05 抽象類

複習筆記05 抽象類

1 抽象類的特點

   抽象方法只能在抽象類裡面

   抽象類和抽象方法必須被abstract修飾

   抽象類不能建立物件(不能例項化)

   抽象類中可以有非抽象的方法

   抽象類和類的關係也是繼承

   一個類繼承了抽象類要麼重寫所有的抽象方法,要麼他自己是抽象類

2 抽象類的成員的特點

   成員變數:

     可以有成員變數

     可以有常量

   成員方法:

     可以有抽象方法

     可以有非抽象方法

   構造方法:

     可以有構造方法的,需要對抽象類的成員變數進行初始化

3 抽象類的細節

 A:抽象類關鍵字abstract可以和哪些關鍵字共存?

  1.private:

    私有的方法子類是無法繼承到的,也不存在覆蓋,而abstract和private一起使用修飾方法,abstract既要子類去實現這個方法,而private修飾子類根本無法得到父類這個方法。互相矛盾。

  2.final: 

    抽象類不能和

final共存,因為抽象類自身無法建立物件,我們需要通過子類建立物件,一旦抽象類使用final關鍵字,那麼抽象類就沒有子類

    抽象方法不能和final共存,因為抽象方法後期需要被子類重寫,一旦final無法重寫   

  3.static:

     抽象方法不能和static關鍵字共存,因為一旦加static我們就可以通過類名直接訪問抽象方法,由於抽象方法沒有方法體,沒有任何意義,也不允許這樣做

B:抽象類中是否可以不定義抽象方法?

  是可以的,那這個抽象類的存在到底有什麼意義呢?不讓該類建立物件,方法可以直接讓子類去使用

C:抽象類是否有建構函式?
  有

,抽象類的建構函式,是由子類的super語句來呼叫,用於給抽象類中的成員初始化