欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解java中接口與抽象類的區(qū)別

 更新時(shí)間:2017年10月30日 10:50:51   作者:tb520ff  
這篇文章主要介紹了詳解java中接口與抽象類的區(qū)別的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家輕松理解掌握接口與抽象類的區(qū)別,需要的朋友可以參考下

詳解java中接口與抽象類的區(qū)別

  1.abstract class 在 Java 語(yǔ)言中表示的是一種繼承關(guān)系,一個(gè)類只能使用一次繼承關(guān)系。但是,一個(gè)類卻可以實(shí)現(xiàn)多個(gè)interface。

  2.在abstract class 中可以有自己的數(shù)據(jù)成員,也可以有非abstarct的成員方法,而在interface中,只能夠有靜態(tài)的不能被修改的數(shù)據(jù)成員(也就是必須是static final的,不過(guò)在 interface中一般不定義數(shù)據(jù)成員),所有的成員方法都是abstract的。

  3.abstract class和interface所反映出的設(shè)計(jì)理念不同。其實(shí)abstract class表示的是"is-a"關(guān)系,interface表示的是"like-a"關(guān)系。

  4.實(shí)現(xiàn)抽象類和接口的類必須實(shí)現(xiàn)其中的所有方法。抽象類中可以有非抽象方法。接口中則不能有實(shí)現(xiàn)方法。

  5.接口中定義的變量默認(rèn)是public static final 型,且必須給其初值,所以實(shí)現(xiàn)類中不能重新定義,也不能改變其值。

  6.抽象類中的變量默認(rèn)是 friendly 型,其值可以在子類中重新定義,也可以重新賦值。

  7.接口中的方法默認(rèn)都是 public,abstract 類型的。

  結(jié)論

  abstract class 和 interface 是 Java語(yǔ)言中的兩種定義抽象類的方式,它們之間有很大的相似性。但是對(duì)于它們的選擇卻又往往反映出對(duì)于問(wèn)題領(lǐng)域中的概 念本質(zhì)的理解、對(duì)于設(shè)計(jì)意圖的反映是否正確、合理,因?yàn)樗鼈儽憩F(xiàn)了概念間的不同的關(guān)系(雖然都能夠?qū)崿F(xiàn)需求的功能)。這其實(shí)也是語(yǔ)言的一種的慣用法,希望讀者朋友能夠細(xì)細(xì)體會(huì)。

主要不同點(diǎn):

1.單繼承與多繼承

2.抽象類可以有自己的實(shí)現(xiàn)方法,有非抽象方法,數(shù)據(jù)變量可以不是public的,接口的方法都是public的,沒(méi)有自己的實(shí)利域,不能自己實(shí)現(xiàn)方法,方法都是抽象的,只能有靜態(tài)數(shù)據(jù)。

3.設(shè)計(jì)意圖,一個(gè)是一種抽象,一個(gè)是實(shí)現(xiàn)我能干什么的功能。

如有疑問(wèn)請(qǐng)留言或者到本站社區(qū)交流討論,感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • SpringBoot 如何添加容器啟動(dòng)的初始化邏輯的操作方法

    SpringBoot 如何添加容器啟動(dòng)的初始化邏輯的操作方法

    這篇文章主要介紹了SpringBoot 如何添加容器啟動(dòng)的初始化邏輯,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • 處理java異步事件的阻塞和非阻塞方法分析

    處理java異步事件的阻塞和非阻塞方法分析

    這篇文章主要介紹了處理java異步事件的阻塞和非阻塞方法分析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,阻塞與非阻塞關(guān)注的是交互雙方是否可以彈性工作。,需要的朋友可以參考下
    2019-06-06
  • javaweb實(shí)戰(zhàn)之商城項(xiàng)目開(kāi)發(fā)(三)

    javaweb實(shí)戰(zhàn)之商城項(xiàng)目開(kāi)發(fā)(三)

    這篇文章主要針對(duì)javaweb商城項(xiàng)目開(kāi)發(fā)進(jìn)行實(shí)戰(zhàn)演習(xí),主要實(shí)現(xiàn)通用的BaseDao.java和使用resultMap映射關(guān)聯(lián)對(duì)象,感興趣的小伙伴們可以參考一下
    2016-02-02
  • Java解決通信過(guò)程的中文亂碼的問(wèn)題

    Java解決通信過(guò)程的中文亂碼的問(wèn)題

    這篇文章主要介紹了 Java解決通信過(guò)程的中文亂碼的問(wèn)題的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • Java實(shí)現(xiàn)多線程中的靜態(tài)代理模式

    Java實(shí)現(xiàn)多線程中的靜態(tài)代理模式

    靜態(tài)代理屬于設(shè)計(jì)模式中的代理模式。這篇文章主要介紹了Java實(shí)現(xiàn)多線程中的靜態(tài)代理模式,詳細(xì)的介紹了靜態(tài)代理的使用,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-05-05
  • 面向切面的Spring通過(guò)切點(diǎn)來(lái)選擇連接點(diǎn)實(shí)例詳解

    面向切面的Spring通過(guò)切點(diǎn)來(lái)選擇連接點(diǎn)實(shí)例詳解

    這篇文章主要為大家介紹了面向切面的Spring通過(guò)切點(diǎn)來(lái)選擇連接點(diǎn)實(shí)例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-10-10
  • Java實(shí)現(xiàn)人機(jī)對(duì)戰(zhàn)猜拳游戲

    Java實(shí)現(xiàn)人機(jī)對(duì)戰(zhàn)猜拳游戲

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)人機(jī)對(duì)戰(zhàn)猜拳游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07
  • Java實(shí)現(xiàn)簡(jiǎn)單的五子棋小游戲

    Java實(shí)現(xiàn)簡(jiǎn)單的五子棋小游戲

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)簡(jiǎn)單的五子棋小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-10-10
  • 詳解java中的synchronized關(guān)鍵字

    詳解java中的synchronized關(guān)鍵字

    這篇文章主要介紹了java中的synchronized關(guān)鍵字,可用來(lái)給對(duì)象和方法或者代碼塊加鎖,當(dāng)它鎖定一個(gè)方法或者一個(gè)代碼塊的時(shí)候,同一時(shí)刻最多只有一個(gè)線程執(zhí)行這段代碼,感興趣的小伙伴們可以參考一下
    2015-12-12
  • 使用MyBatis快速生成代碼的幾種方法

    使用MyBatis快速生成代碼的幾種方法

    本文主要介紹了如何使用MyBatis快速生成代碼的幾種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2023-12-12

最新評(píng)論