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

Java abstract class 與 interface對(duì)比

 更新時(shí)間:2016年12月30日 17:15:49   投稿:lqh  
這篇文章主要介紹了 Java abstract class 與 interface對(duì)比的相關(guān)資料,需要的朋友可以參考下

Java abstract class 與 interface對(duì)比

前言

abstract class和interface都是Java用來(lái)描述抽象體的,不知道是否有同學(xué)跟我一樣對(duì)這兩者的語(yǔ)法層面的區(qū)別以及如何選擇這兩者還存在著疑惑,反正接下來(lái),讓我詳細(xì)介紹一下abstract class和interface。

理解抽象類

在面向?qū)ο蟮母拍钪?,所有的?duì)象都是通過(guò)類來(lái)描述的。但是反過(guò)來(lái)卻不是這樣,并不是所有的類都是用來(lái)描述對(duì)象的。因?yàn)檫@個(gè)類中可能沒(méi)有足夠的信息來(lái)描述一個(gè)具體的對(duì)象,這樣的類就是抽象類(ps:注意這里的抽象類不是單指abstract class)。抽象類往往用來(lái)描述我們對(duì)問(wèn)題領(lǐng)域進(jìn)行分析和設(shè)計(jì)后得出來(lái)的抽象概念,是對(duì)一系列看上去不同,但是本質(zhì)相同的具體概念的抽象。

abstract class 和 interface語(yǔ)法區(qū)別

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

  1. 抽象類可以有普通的成員變量,而接口中一般沒(méi)有成員變量。如果非要在接口中安插成員變量,則成員變量的類型必須為static final類型。
  2. 抽象類中可以包含非抽象的普通方法,而接口中的所有方法都必須是抽象的。
  3. 抽象類中的抽象方法的訪問(wèn)類型可以是public、protected或者包訪問(wèn)類型。而接口中的抽象方法只能是public abstract類型,接口的方法前面可以不加修飾符,默認(rèn)就是public abstract類型。
  4. 一個(gè)類可以實(shí)現(xiàn)多個(gè)接口(多繼承的折衷實(shí)現(xiàn)),但是只能繼承一個(gè)抽象類。

abstract class和interface的使用區(qū)別

abstract class的設(shè)計(jì)體現(xiàn)了”is-a”的關(guān)系,而interface體現(xiàn)的是”has-a”的關(guān)系。

什么時(shí)候使用接口?

你想擴(kuò)展我給你的東西,就必須實(shí)現(xiàn)必需的接口。例如,實(shí)現(xiàn)Comparable接口的對(duì)象可以直接使用sort方法Collections.sort(List list)排序。

什么時(shí)候使用抽象類?

如果你有一個(gè)抽象類,它提供了很多通用的功能,并且抽象出了每個(gè)子類需要自己去實(shí)現(xiàn)的方法。而你設(shè)計(jì)的東西恰好基于這個(gè)類,那這個(gè)實(shí)現(xiàn)你就可以去繼承這個(gè)抽象類,然后實(shí)現(xiàn)自己獨(dú)特的方法。

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • Spring MVC---數(shù)據(jù)綁定和表單標(biāo)簽詳解

    Spring MVC---數(shù)據(jù)綁定和表單標(biāo)簽詳解

    本篇文章主要介紹了Spring MVC---數(shù)據(jù)綁定和表單標(biāo)簽詳解,具有一定的參考價(jià)值,有興趣的可以了解一下。
    2017-01-01
  • Java多線程的常用創(chuàng)建方式總結(jié)

    Java多線程的常用創(chuàng)建方式總結(jié)

    今天給大家?guī)?lái)的是關(guān)于Java多線程的相關(guān)知識(shí),文章圍繞著Java多線程的常用創(chuàng)建方式展開(kāi),文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下
    2021-06-06
  • MybatisPlus批量保存原理及失效原因排查全過(guò)程

    MybatisPlus批量保存原理及失效原因排查全過(guò)程

    這篇文章主要介紹了MybatisPlus批量保存原理及失效原因排查全過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Spring Security 實(shí)現(xiàn)用戶名密碼登錄流程源碼詳解

    Spring Security 實(shí)現(xiàn)用戶名密碼登錄流程源碼詳解

    在服務(wù)端的安全管理使用了Spring Security,用戶登錄成功之后,Spring Security幫你把用戶信息保存在Session里,但是具體保存在哪里,要是不深究你可能就不知道,今天小編就帶大家具體了解一下Spring Security實(shí)現(xiàn)用戶名密碼登錄的流程
    2021-11-11
  • YGC前后新生代是否變大分析詳解

    YGC前后新生代是否變大分析詳解

    要解釋這個(gè)問(wèn)題,我們先要弄清楚YGC的過(guò)程,parNew是新生代的gc算法,簡(jiǎn)單來(lái)說(shuō)從gc roots開(kāi)始掃描對(duì)象,當(dāng)掃到一個(gè)只要是屬于新生代的對(duì)象就將其挪到to space,但是老的對(duì)象還不會(huì)做釋放,直到gc完成之后再看是否釋放老的對(duì)象
    2022-01-01
  • IDEA最新激活碼2021(IDEA2020.3.2最新永久激活方法)

    IDEA最新激活碼2021(IDEA2020.3.2最新永久激活方法)

    這篇文章主要介紹了IDEA最新激活碼2021(IDEA2020.3.2最新永久激活方法),本文通過(guò)實(shí)例圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • Java如何使用SSLContext請(qǐng)求https鏈接

    Java如何使用SSLContext請(qǐng)求https鏈接

    這篇文章主要介紹了Java如何使用SSLContext請(qǐng)求https鏈接問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-01-01
  • 最新評(píng)論