java接口與抽象類學(xué)習(xí)

1.什么是抽象類


特點(diǎn)整理:

抽象類,不能被實(shí)例化,非抽象的類的子類,可以實(shí)例化;

抽象類中不能含有抽象方法,但是如果是抽象方法,就一定是抽象類;

抽象類中方法只是申明,但無具體方法體內(nèi)容;

抽象類中方法必須使用abstract進(jìn)行

抽象方法必須為public與protected修飾,不能使用private(如果方法不能被繼承,子類方法將無法得到實(shí)現(xiàn))

如果抽象類被子類繼承,則子類需要實(shí)現(xiàn)抽象類的抽象方法,如果子類沒有實(shí)現(xiàn)父類的抽象方法,在需要將子類也定義為抽象方法。

抽象類就是為了繼承而存在的,如果不繼承抽象類方法無法實(shí)現(xiàn)與使用。



2.什么接口

接口類中的變量會(huì)被隱形地指定為public static final變量(并且只能是public static final變量,用private修飾會(huì)報(bào)編譯錯(cuò)誤)

使用interface 的作為修改

接口類中方法會(huì)被隱形地指定為public abstract方法且只能是public abstract方法(用其他關(guān)鍵字,比如private、protected、static、 final等修飾會(huì)報(bào)編譯錯(cuò)誤)

接口中所有的方法不能有具體的實(shí)現(xiàn)(接口中的方法必須都是抽象方法)

一個(gè)類可以繼承多個(gè)接口,解決類繼承1對1的操作

3.語法不同點(diǎn)

1.語法層面上的區(qū)別

  1)抽象類可以提供成員方法的實(shí)現(xiàn)細(xì)節(jié),而接口中只能存在public abstract 方法;

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

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

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

以上來自https://www.cnblogs.com/dolphin0520/p/3811437.html

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容