抽象類

1、抽象方法與空方法體的方法不同之處:

public abstract void tets();

是抽象方法,但下面的就是空方法體的方法

public void test(){} 

2、抽象類和抽象方法規則:

  • 抽象類和抽象方法必須使用abstract修飾符修飾
  • 有抽象方法的類必須被定義爲抽象類,但抽象類可以沒有抽象方法(沒有抽象方法的抽象類,作用:不想被實例化,或者是讓它的子類各取所需,只覆蓋要用的方法即可,如HttpServlet)
  • 抽象類不能被實例化
  • 抽象類可以包含成員變量、方法(普通和抽象方法都行)、構造器、初始化塊、內部類(接口、枚舉等)。抽象類的構造器不能用於創建實例,主要用來被其子類調用
  • final(表示不能被繼承或重寫)與abstract(表示需要繼承或重寫)不能同時使用 
  • abstract不能修飾成員變量、局部變量、構造器
  • static(表示方法屬於類)與absrtact不能同時修飾某個方法(通過該類調用了一個沒有方法體的方法會報錯
  • private(子類不可見)與abstract不能同時修飾方法

3、抽象類的作用

抽象類體現的是一種模板模式,從多個具體類中抽象出來的父類,以這個抽象類作爲子類的模板,子類在抽象類的基礎上進行擴展、改造,但子類總體上會大致保留抽象類的行爲方式。

 

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