分清Java抽象方法、抽象類以及接口

總結了一下java中抽象方法、抽象類和接口,防止大家傻傻分不清楚吐舌頭~概念性的東西都有點繞,請讀者一定看清每個字詞,認真體會。

抽象方法和抽象類

  1. 抽象方法僅有聲明而沒有函數體,必須使用abstract關鍵詞限定。
  2. 使用abstract關鍵詞限定的類是抽象類,抽象類不可以實例化爲對象。
  3. 只要包含抽象方法,那麼這個類就是抽象類,抽象類使用abstract限定。
  4. 抽象類可以同時包含抽象方法和普通方法(即有函數體的方法)。
  5. 抽象類可以不包含任何抽象方法而都是普通方法,用abstract限定爲一個抽象類只是爲了阻止其實例化爲對象。
  6. 如果從一個抽象類繼承,並想創建該新類的對象,那麼就必須爲基類中的所有抽象方法提供方法定義。如果不這樣做(可以選擇不做),那麼 導出類便也是抽象類,編譯器會強制我們用abstract關鍵字來限定這個類。

接口

interface關鍵字使抽象的概念更向前邁進了一步,或者說接口是“做絕了的”抽象類,它根本不提供任何具體函數實現,所有的方法都只是聲明而沒有任何方法體。

  1. 接口中可以包含域(屬性),但是這些域隱式地是static和final的,即使你不顯式地這樣聲明。
  2. 接口中的所有方法只是函數聲明而沒有函數體。
  3. 接口中的所有方法必須被定義爲public的(即使你不顯式地用public修飾,它也是public的),因爲接口中的所有方法都是對外的(都是暴露在外的接口 ,好像有點繞==!)。
  4. 接口必然不可以實例化爲對象。
  5. 實現接口的子類必須實現接口中的所有方法。
  6. 可以繼承一個接口,從而得到一個新的接口,新接口又擁有自己的方法聲明。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章