java基礎總結(面試高頻問題)十:java抽象類和介面的區別
1:抽象類:關鍵字abstract修飾
(1)可以修飾類,也可以修飾方法;
(2)修飾類的話,抽象類可以建立構造方法,但是不可以例項化,建立構造方法的目的是為了子類的呼叫;
(3)有抽象方法的類一定是抽象類,抽象類可以沒有抽象方法,抽象類可以有非抽象的方法;
(4)如果抽象類的子類重寫了所有的抽象方法,子類可以是非抽象的,且可以例項化;
(5)如果抽象類的子類沒有重寫所有的抽象方法,則子類是抽象類,不可以例項化;
2:介面:關鍵字interface修飾
(1)介面不能例項化,不能建立構造方法;
(2)介面裡的方法可以是靜態方法(jdk1.8之後)、預設方法(default 返回型別 方法名(){})或者抽象方法,這裡的抽象方法可以省略關鍵字abstract,這裡的靜態方法只能由介面自己呼叫(介面名.方法名),這裡的預設方法可以使用實現類物件呼叫;
(3)一個類可以實現多個介面,一個介面可以繼承介面;
(4)介面裡的方法必須是public訪問許可權,可以省略public(因為不寫的話預設就是public訪問許可權);
(5)介面可以含有變數,但是介面中的變數會被隱式修飾為public static final,並且只能是public型別;
3:抽象類和介面的區別:
(1)介面被用於常用的功能,便於日後維護和新增刪除,而抽象類更傾向於充當公共類的角色,不適用於日後重新對立面的程式碼修改。功能需要累積時用抽象類,不需要累積時用介面;
(2)介面只有定義,不能有方法的實現(jdk1.8以後可以定義default方法體),而抽象類可以有定義與實現,方法可在抽象類中實現;
(3)抽象類中的成員變數可以是各種型別的,而介面中的成員變數只能是 public static final 型別的;
(4)一個類只能繼承一個抽象類,而一個類卻可以實現多個介面;
(5)介面強調特定功能的實現,而抽象類強調所屬關係;
(6)抽象類使用的是 is a 關係,介面使用的 like a 關係;
相關文章
- Java:面試題:抽象類與介面的區別Java面試題抽象
- 【Java面試題-基礎知識02】Java抽象類和介面六連問?Java面試題抽象
- Java中抽象類和介面的區別Java抽象
- java基礎總結(面試高頻問題)十二:Java的集合類,陣列去除重複資料的方法Java面試陣列
- Java 基礎學習總結(一)抽象類和介面Java抽象
- Java面試題總結之Java基礎(三)Java面試題
- Java中抽象類與介面的區別Java抽象
- 【Java基本功】聊聊抽象類和介面的區別Java抽象
- java框架面試高頻問題(SpringMVC)Java框架面試SpringMVC
- Java中抽象類和介面的介紹及二者間的區別Java抽象
- Java基礎-抽象類和介面Java抽象
- 【Java問題面試總結】Java面試
- 夯實Java基礎系列6:一文搞懂抽象類和介面,從基礎到面試題,揭秘其本質區別!Java抽象面試題
- 【搞定 Java 併發面試】面試最常問的 Java 併發基礎常見面試題總結!Java面試題
- Java基礎10 介面的繼承與抽象類Java繼承抽象
- Java高頻面試題---MySQLJava面試題MySql
- Java高頻面試題---RabbitMQJava面試題MQ
- Java集合高頻面試題Java面試題
- 夯實Java基礎系列6:一文搞懂抽象類和介面,從基礎到面試題,揭祕其本質區別!Java抽象面試題
- Java面試題總結(基礎面試題完結版,2020-10-13)Java面試題
- JAVA基礎之三-介面和抽象類Java抽象
- 一文打盡Java抽象類和介面的相關問題Java抽象
- java面試題總結-詳細分類Java面試題
- Java基礎面試知識點總結Java面試
- Java面試之Java基礎問題答案口述整理Java面試
- java基礎面試題Java面試題
- Java高頻面試題(2023最新整理)Java面試題
- Java總結-抽象類與介面Java抽象
- 面試問題總結(Java工程師 20190301)面試Java工程師
- 麵霸篇:高頻 Java 基礎問題(核心卷一)Java
- 存下吧!Spring高頻面試題總結Spring面試題
- java-介面和抽象類的聯絡和區別。Java抽象
- 運維和開發知識,Java中的抽象類和介面的兩大區別!運維Java抽象
- 如何準備Java的高階技術面試,java基礎面試筆試題Java面試筆試
- Java 常用類總結(SE基礎)Java
- 面試題總結-Java部分面試題Java
- Java基礎面試題下Java面試題
- java面試題--基礎上Java面試題