Java接口與抽象類的區別


Java提供和支持創建抽象類和接口。它們的實現有共同點,不同點在於:

  1. 接口中所有的方法隱含的都是抽象的。而抽象類則可以同時包含抽象和非抽象的方法。
  2. 類可以實現很多個接口,但是只能繼承一個抽象類
  3. 類可以不實現抽象類和接口聲明的所有方法,當然,在這種情況下,類也必須得聲明成是抽象的
  4. 抽象類可以在不提供接口方法實現的情況下實現接口。
  5. Java接口中聲明的變量默認都是final的。抽象類可以包含非final的變量
  6. Java接口中的成員函數默認是public的。抽象類的成員函數可以是private,protected或者是public。
  7. 接口是絕對抽象的,不可以被實例化,抽象類也不可以被實例化
  8. 一個類實現接口的話要實現接口的所有方法,而抽象類不一定

也可以參考JDK8中抽象類和接口的區別

 

一句話總結:

從設計層面來說,抽象是對類的抽象,是一種模板設計,接口是行為的抽象,是一種行為的規范。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM