運維和開發知識,Java中的抽象類和介面的兩大區別!
抽象類和介面有什麼區別?什麼情況下使用抽象類?什麼情況下使用介面?
抽象類和介面的不同:
1.抽象函式為帶有abstract關鍵字修飾的方法,抽象類是包含有抽象函式或使用abstract class來定義的類。
抽象類主要是用來抽象一組子類的共有屬性和方法,抽象類不能被例項化,抽象類只能作為父類被子類繼承,抽象類用來作為子類的模板。
2.介面是抽象方法的集合,介面通常以interface來宣告。
類實現介面,從而繼承介面中的抽象方法,實現一個介面的時候,需要實現介面中的所有方法。
設計層面區別:
抽象類可以定義公用方法,如果抽象類類增加一個方法,那麼子類會自動具備對應的功能;而介面中增加一個方法定義,那麼所有的實現類需要去分別定義自己的實現。
抽象類強調的是方法和屬性,抽象提取出共有的方法和屬性,對應的是is a的概念,子類是哪一種類;介面強調的是行為,突出實現介面的類有什麼功能,對應的 has a的概念。
介面用來實現C++中的多繼承,實現解耦和程式碼複用。
什麼時候使用抽象類和介面?
當有很多方法並且想要其中一部分方法有預設的實現,這個時候用抽象類。Java中不支援多繼承,類只能繼承一個父類,但是類可以實現多個介面,要實現多繼承的情況下需要使用介面。如果基礎契約不斷變化,那麼應該使用抽象類。因為如果您的基礎契約一直在變化,並且您仍然使用介面,那麼每次契約變化時,您必須更改實現該介面的所有類。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69902581/viewspace-2644670/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Java中抽象類和介面的區別Java抽象
- 多維度分析:抽象類和介面的區別抽象
- Java中抽象類和介面的介紹及二者間的區別Java抽象
- 抽象類和介面的區別抽象
- Java中抽象類與介面的區別Java抽象
- java中抽象類跟介面的區別Java抽象
- 【Java基本功】聊聊抽象類和介面的區別Java抽象
- Java抽象類與介面的區別Java抽象
- JAVA中介面和抽象類的區別Java抽象
- java-介面和抽象類的聯絡和區別。Java抽象
- 介面和抽象類的區別抽象
- Java:面試題:抽象類與介面的區別Java面試題抽象
- Java 8 中的抽象類和介面到底有啥區別?Java抽象
- 抽象類與介面的區別抽象
- java基礎總結(面試高頻問題)十:java抽象類和介面的區別Java面試抽象
- java中抽象類和介面Java抽象
- 我是如何理解Java抽象類和介面的Java抽象
- 計算機buffer和cache的區別?linux運維學習知識計算機Linux運維
- java抽象類和抽象方法Java抽象
- Java 抽象類、普通類、介面的區別——值得你一看的乾貨Java抽象
- Java 介面和抽象類是什麼,有什麼區別Java抽象
- 【Java面試題-基礎知識02】Java抽象類和介面六連問?Java面試題抽象
- 抽象類和介面的相同點和不同點抽象
- JavaSE基礎知識學習—–抽象類和介面Java抽象
- JavaSE基礎知識學習-----抽象類和介面Java抽象
- Java中異常分類和Throw和Throws的區別Java
- Java開發和Android開發的區別JavaAndroid
- Java抽象(方法,類)和Java的介面Java抽象
- 我如何理解Java中抽象類和介面Java抽象
- Java常見知識點彙總(⑫)——==和equals的區別Java
- 關於抽象類和介面的初步理解抽象
- C++中運算子 &和&&、|和|| 的區別C++
- 全面的MySQL基礎運維知識點(一)MySql運維
- 全面的MySQL基礎運維知識點(三)MySql運維
- 全面的MySQL基礎運維知識點(二)MySql運維
- java 中equals和==的區別Java
- Java中equals和==的區別Java
- [轉載] 整理下java中stringBuilder和stringBuffer兩個類的區別JavaUI