這篇文章給大家分享的是Java的抽象類與接口的不同之處。小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考。一起跟隨小編過來看看吧。
創(chuàng)新互聯(lián)主要從事網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站制作、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)城廂,十余年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220
抽象類:在Java中被abstract關(guān)鍵字修飾的類稱為抽象類,被abstract關(guān)鍵字修飾的方法稱為抽象方法,抽象方法只有方法的聲明,沒有方法體。抽象類的特點(diǎn):
1、抽象類不能被實(shí)例化只能被繼承;
2、包含抽象方法的一定是抽象類,但是抽象類不一定含有抽象方法;
3、抽象類中的抽象方法的修飾符只能為public或者protected,默認(rèn)為public;
4、一個(gè)子類繼承一個(gè)抽象類,則子類必須實(shí)現(xiàn)父類抽象方法,否則子類也必須定義為抽象類;
5、抽象類可以包含屬性、方法、構(gòu)造方法,但是構(gòu)造方法不能用于實(shí)例化,主要用途是被子類調(diào)用。
接口:Java中接口使用interface關(guān)鍵字修飾,特點(diǎn)為:
1、接口可以包含變量、方法;變量被隱士指定為public static final,方法被隱士指定為public abstract(JDK1.8之前);
2、接口支持多繼承,即一個(gè)接口可以extends多個(gè)接口,間接的解決了Java中類的單繼承問題;
3、一個(gè)類可以實(shí)現(xiàn)多個(gè)接口;
4、JDK1.8中對(duì)接口增加了新的特性:
默認(rèn)方法(default method):JDK 1.8允許給接口添加非抽象的方法實(shí)現(xiàn),但必須使用default關(guān)鍵字修飾;定義了default的方法可以不被實(shí)現(xiàn)子類所實(shí)現(xiàn),但只能被實(shí)現(xiàn)子類的對(duì)象調(diào)用;如果子類實(shí)現(xiàn)了多個(gè)接口,并且這些接口包含一樣的默認(rèn)方法,則子類必須重寫默認(rèn)方法;
靜態(tài)方法(static method):JDK 1.8中允許使用static關(guān)鍵字修飾一個(gè)方法,并提供實(shí)現(xiàn),稱為接口靜態(tài)方法。接口靜態(tài)方法只能通過接口調(diào)用(接口名.靜態(tài)方法名)。
以上就是Java的抽象類與接口的不同之處,看完之后是否有所收獲呢?如果想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊!