最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2020年12月07日 15:25:55   作者:馬悅悅  
這篇文章主要介紹了Java接口和抽象類有什么區(qū)別,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

接口(interface)和抽象類(abstract class)是支持抽象類定義的兩種機(jī)制。

接口是公開的,不能有私有的方法或變量,接口中的所有方法都沒(méi)有方法體,通過(guò)關(guān)鍵字interface實(shí)現(xiàn)。

接口(英文:Interface),在JAVA編程語(yǔ)言中是一個(gè)抽象類型,是抽象方法的集合,接口通常以interface來(lái)聲明。一個(gè)類通過(guò)繼承接口的方式,從而來(lái)繼承接口的抽象方法。

接口并不是類,編寫接口的方式和類很相似,但是它們屬于不同的概念。類描述對(duì)象的屬性和方法。接口則包含類要實(shí)現(xiàn)的方法。

除非實(shí)現(xiàn)接口的類是抽象類,否則該類要定義接口中的所有方法。

接口無(wú)法被實(shí)例化,但是可以被實(shí)現(xiàn)。一個(gè)實(shí)現(xiàn)接口的類,必須實(shí)現(xiàn)接口內(nèi)所描述的所有方法,否則就必須聲明為抽象類。另外,在 Java 中,接口類型可用來(lái)聲明一個(gè)變量,他們可以成為一個(gè)空指針,或是被綁定在一個(gè)以此接口實(shí)現(xiàn)的對(duì)象。

抽象類是可以有私有方法或私有變量的,通過(guò)把類或者類中的方法聲明為abstract來(lái)表示一個(gè)類是抽象類,被聲明為抽象的方法不能包含方法體。子類實(shí)現(xiàn)方法必須含有相同的或者更低的訪問(wèn)級(jí)別(public->protected->private)。抽象類的子類為父類中所有抽象方法的具體實(shí)現(xiàn),否則也是抽象類。

接口可以被看作是抽象類的變體,接口中所有的方法都是抽象的,可以通過(guò)接口來(lái)間接的實(shí)現(xiàn)多重繼承。接口中的成員變量都是static final類型,由于抽象類可以包含部分方法的實(shí)現(xiàn),所以,在一些場(chǎng)合下抽象類比接口更有優(yōu)勢(shì)。

相同點(diǎn):

(1)都不能被實(shí)例化

(2)接口的實(shí)現(xiàn)類或抽象類的子類都只有實(shí)現(xiàn)了接口或抽象類中的方法后才能實(shí)例化。

不同點(diǎn):

(1)接口只有定義,不能有方法的實(shí)現(xiàn),java 1.8中可以定義default方法體,而抽象類可以有定義與實(shí)現(xiàn),方法可在抽象類中實(shí)現(xiàn)。

(2)實(shí)現(xiàn)接口的關(guān)鍵字為implements,繼承抽象類的關(guān)鍵字為extends。一個(gè)類可以實(shí)現(xiàn)多個(gè)接口,但一個(gè)類只能繼承一個(gè)抽象類。所以,使用接口可以間接地實(shí)現(xiàn)多重繼承。

(3)接口強(qiáng)調(diào)特定功能的實(shí)現(xiàn),而抽象類強(qiáng)調(diào)所屬關(guān)系。

(4)接口成員變量默認(rèn)為public static final,必須賦初值,不能被修改;其所有的成員方法都是public、abstract的。抽象類中成員變量默認(rèn)default,可在子類中被重新定義,也可被重新賦值;抽象方法被abstract修飾,不能被private、static、synchronized和native等修飾,必須以分號(hào)結(jié)尾,不帶花括號(hào)。

(5)接口被用于常用的功能,便于日后維護(hù)和添加刪除,而抽象類更傾向于充當(dāng)公共類的角色,不適用于日后重新對(duì)立面的代碼修改。功能需要累積時(shí)用抽象類,不需要累積時(shí)用接口。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 使用SpringSecurity處理CSRF攻擊的方法步驟

    使用SpringSecurity處理CSRF攻擊的方法步驟

    這篇文章主要介紹了使用SpringSecurity處理CSRF攻擊的方法步驟,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-03-03
  • Servlet實(shí)現(xiàn)點(diǎn)擊計(jì)數(shù)器的方法

    Servlet實(shí)現(xiàn)點(diǎn)擊計(jì)數(shù)器的方法

    這篇文章主要介紹了Servlet實(shí)現(xiàn)點(diǎn)擊計(jì)數(shù)器的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • 推薦一款I(lǐng)ntelliJ IDEA提示快捷鍵的Key Promoter X插件

    推薦一款I(lǐng)ntelliJ IDEA提示快捷鍵的Key Promoter X插件

    今天小編就為大家分享一篇關(guān)于IntelliJ IDEA提示快捷鍵的Key Promoter X插件,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2018-10-10
  • java寫卷積神經(jīng)網(wǎng)絡(luò)(CupCnn簡(jiǎn)介)

    java寫卷積神經(jīng)網(wǎng)絡(luò)(CupCnn簡(jiǎn)介)

    這篇文章主要介紹了java寫卷積神經(jīng)網(wǎng)絡(luò)(CupCnn簡(jiǎn)介),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-04-04
  • 關(guān)于Spring?Ioc和DI注解的問(wèn)題

    關(guān)于Spring?Ioc和DI注解的問(wèn)題

    這篇文章主要介紹了Spring?Ioc和DI注解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03
  • Java實(shí)現(xiàn)單線程聊天室

    Java實(shí)現(xiàn)單線程聊天室

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)單線程聊天室,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-09-09
  • springboot集成redis實(shí)現(xiàn)消息的訂閱與發(fā)布

    springboot集成redis實(shí)現(xiàn)消息的訂閱與發(fā)布

    本文主要介紹了springboot集成redis實(shí)現(xiàn)消息的訂閱與發(fā)布,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2024-05-05
  • SpringSecurity多認(rèn)證器配置多模式登錄自定義認(rèn)證器方式

    SpringSecurity多認(rèn)證器配置多模式登錄自定義認(rèn)證器方式

    這篇文章主要介紹了SpringSecurity多認(rèn)證器配置多模式登錄自定義認(rèn)證器方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2025-04-04
  • 詳解Mybatis逆向工程中使用Mysql8.0版本驅(qū)動(dòng)遇到的問(wèn)題

    詳解Mybatis逆向工程中使用Mysql8.0版本驅(qū)動(dòng)遇到的問(wèn)題

    今天在使用 8.0.12 版的 mysql 驅(qū)動(dòng)時(shí)遇到了各種各樣的坑。這篇文章主要介紹了詳解Mybatis逆向工程中使用Mysql8.0版本驅(qū)動(dòng)遇到的問(wèn)題,感興趣的小伙伴們可以參考一下
    2018-10-10
  • MyBatis元素resultMap介紹及使用詳解

    MyBatis元素resultMap介紹及使用詳解

    這篇文章主要介紹了MyBatis元素resultMap介紹及使用,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06

最新評(píng)論

乐陵市| 花莲县| 贡嘎县| 达拉特旗| 岳池县| 元朗区| 富民县| 高雄市| 临潭县| 香港 | 商都县| 镇平县| 宝兴县| 久治县| 陈巴尔虎旗| 双牌县| 宜昌市| 安阳市| 棋牌| 肃北| 中超| 阿图什市| 工布江达县| 桓台县| 马鞍山市| 赣榆县| 高碑店市| 垣曲县| 榆林市| 六安市| 呼伦贝尔市| 乌拉特后旗| 静海县| 东兴市| 浮梁县| 新巴尔虎左旗| 新竹市| 武乡县| 兴国县| 南川市| 柞水县|