溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Java8中的接口和抽象類到底有什么區(qū)別

發(fā)布時間:2021-08-30 10:59:38 來源:億速云 閱讀:150 作者:chen 欄目:編程語言

本篇內(nèi)容主要講解“Java8中的接口和抽象類到底有什么區(qū)別”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“Java8中的接口和抽象類到底有什么區(qū)別”吧!

區(qū)別1:

首先抽象類是一個“類”,而接口只是一個“接口”,兩者的概念和應(yīng)用場景不一樣,這也是抽象類和接口的主要區(qū)別。

區(qū)別2:

即使在 Java 8 中接口也能寫實現(xiàn)方法了,但卻不能寫構(gòu)造方法,而在抽象類是可以寫構(gòu)造方法的,意味著抽象類是參與類的實例化過程的,而接口則不是。

區(qū)別3:

抽象類可以有自己的各種成員變量,并且可以通過自己的非抽象方法進(jìn)行改變,而接口中的變量默認(rèn)全是 public static final  修飾的,意味著都是常量,并且不能被自己和外部修改。

區(qū)別4:

接口可以實現(xiàn)多繼承,而抽象類只能單繼承。

下面我舉兩個例子:

public class HashMap<K,V> extends AbstractMap<K,V>     implements Map<K,V>, Cloneable, Serializable {     ... }
public interface Connection  extends Wrapper, AutoCloseable { ... }

類與類只能單繼承,而類與接口、接口與接口可以多繼承。

Java8中的接口和抽象類到底有什么區(qū)別

總結(jié)

Java 8 中的接口和抽象類的區(qū)別除了接口中可以寫實現(xiàn)方法之外這點變化,其他的還是保持不變的。

既然接口可以寫方法實現(xiàn)了,那么抽象類的存在貌似是弱化了,因為類只能是單繼承,耦合性不好,而接口可以多實現(xiàn),可以靈活擴(kuò)展,也不會增加類的耦合性。

雖然說是少用繼承,多用組合的設(shè)計理念,但繼承的場景也還是存在的,比如我們常用的模板設(shè)計模式就是抽象類和各種模板的子類,所以說,接口也不能完全代替抽象類的。

到此,相信大家對“Java8中的接口和抽象類到底有什么區(qū)別”有了更深的了解,不妨來實際操作一番吧!這里是億速云網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI