1. 程式人生 > 實用技巧 >abstract class(抽象類)

abstract class(抽象類)

  • $Why?$
  1. 在多繼承層次中,當一個個新子類的定義,類變得越來越具體,而父類則更為一般化。所以類的設計應該保證父類和子類能夠共享特徵,有時候將一個父類設計得非常抽象,以至於他沒有具體的例項,這樣的類叫做抽象類。
  2. 用$abstract$修飾一個類時,這個類叫做抽象類;用$abstract$修飾一個方法時,該方法叫做抽象方法:其中抽象方法,只有方法的宣告,但是沒沒有方法體的實現,以分號結束。
    abstract int abstractMethod(int x);     
  3. 抽象類不能被例項化,一般作為父類被繼承。抽象的子類必須重寫父類的方法,並提供方法體。若沒有重寫全部的抽象方法,仍為抽象類。

  4. 不能用$abstract$修飾屬性、私有方法、構造器(不能直接建立抽象類的例項物件,$new Class()$是非法的)、靜態方法、$final$的方法。$final$修飾的類就是最終的類,不能被繼承;而抽象類想要使用需要繼承。
  5. 只要有一個抽象方法,類就是抽象類。