国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Java > 正文

Java abstract class 與 interface對比

2019-11-26 13:21:33
字體:
來源:轉載
供稿:網友

Java abstract class 與 interface對比

前言

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

理解抽象類

在面向對象的概念中,所有的對象都是通過類來描述的。但是反過來卻不是這樣,并不是所有的類都是用來描述對象的。因為這個類中可能沒有足夠的信息來描述一個具體的對象,這樣的類就是抽象類(ps:注意這里的抽象類不是單指abstract class)。抽象類往往用來描述我們對問題領域進行分析和設計后得出來的抽象概念,是對一系列看上去不同,但是本質相同的具體概念的抽象。

abstract class 和 interface語法區別

抽象類和接口的區別如下:

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

abstract class和interface的使用區別

abstract class的設計體現了”is-a”的關系,而interface體現的是”has-a”的關系。

什么時候使用接口?

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

什么時候使用抽象類?

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 海兴县| 扎赉特旗| 新丰县| 玉环县| 阿拉善盟| 潜江市| 若尔盖县| 明水县| 大埔县| 沽源县| 凌海市| 苏尼特右旗| 葵青区| 固阳县| 信阳市| 崇左市| 罗源县| 南部县| 黔江区| 徐闻县| 塔河县| 佛坪县| 贡山| 洛阳市| 抚顺县| 子洲县| 合阳县| 德令哈市| 集安市| 哈巴河县| 洞口县| 五指山市| 冷水江市| 湖口县| 尼勒克县| 博罗县| 确山县| 达州市| 垫江县| 会宁县| 宁陕县|