溫馨提示×

溫馨提示×

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

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

java中抽象類和接口有什么區(qū)別

發(fā)布時間:2020-06-23 17:50:39 來源:億速云 閱讀:194 作者:元一 欄目:編程語言

java中抽象類和接口有什么區(qū)別?針對這個問題,這篇文章給出了相對應(yīng)的分析和解答,希望能幫助更多想解決這個問題的朋友找到更加簡單易行的辦法。

抽象類和接口的區(qū)別:

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

抽象類可以有構(gòu)造方法,接口中不能有構(gòu)造方法。

抽象類中可以有成員變量,接口中沒有成員變量。(被final修飾變成了常量)

抽象類中可以有普通方法,接口中所有方法都必須是抽象的。(1.8后允許接口定義非抽象方法)

抽象類中抽象方法的訪問類型可以是public,protected,但接口中抽象方法的訪問類型只能是public,并且默認為public abstract(省略則自動默認補全)。

抽象類中的成員變量可以是各種類型的,而接口中的成員變量只能是public static final類型的。

抽象類中可以有靜態(tài)代碼塊和靜態(tài)方法,接口中不能含有靜態(tài)代碼塊以及靜態(tài)方法。



抽象類:

一個類中有抽象方法,這個類就變成了抽象類。

抽象類中class的前面必須有abstract修飾符。

抽象類中可以有普通方法,也可以有抽象方法,而抽象方法的個數(shù)可以是0個,也可以是多個。

子類繼承父類,必須重寫全部的抽象方法,除非這個類也變成了抽象類。

抽象類往往用來表征對問題領(lǐng)域進行分析、設(shè)計中得出的抽象概念,是對一系列看上去不同,但是本質(zhì)上相同的具體概念的抽象。抽象類是不完整的,它只能用作基類。

接口:

表面上看,接口是一種特殊的抽象類,但是類是類,接口是接口,是并列的關(guān)系。

接口中所有方法都必須是抽象的。(1.8之后允許接口定義非抽象方法)

接口中方法定義默認為public abstract類型,成員變量默認為public static final 類型。(如果省略,系統(tǒng)會默認補全)。

接口泛指實體把自己提供給外界的一種抽象化物(可以為另一實體),用以由內(nèi)部操作分離出外部溝通方法,使其能被修改內(nèi)部而不影響外界其他實體與其交互的方式,就如面向?qū)ο蟪绦蛟O(shè)計提供的多重抽象化。

抽象類和普通類的區(qū)別:

包含抽象方法的類稱為抽象類,但并不意味著抽象類中只能有抽象方法,和普通類一樣,同樣可以擁有成員變量和普通的成員方法。

抽象類和普通類的區(qū)別如下:

抽象方法的訪問修飾符必須為publicprotected。

抽象類不能被實例化。

如果一個類繼承于抽象類,則子類必須實現(xiàn)父類的抽象方法,如果子類沒有實現(xiàn)父類的抽象方法,則子類必須也一個抽象類。

關(guān)于java中抽象類和接口有什么區(qū)別就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

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

AI