91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java中接口與抽象類的區別

發布時間:2020-07-04 13:39:07 來源:網絡 閱讀:1197 作者:xiezh10 欄目:編程語言

一、抽象類

在Java中,被關鍵字abstract修飾的類稱為抽象類;被abstract修飾的方法稱為抽象方法,抽象方法只有方法聲明沒有方法體。
抽象類有以下幾個特點:
1、抽象類不能被實例化,只能被繼承。
2、包含抽象方法的類一定是抽象類,但抽象類不一定包含抽象方法(抽象類可以包含普通方法)。
3、抽象方法的權限修飾符只能為public或者protected,默認情況下為public。
4、一個類繼承于一個抽象類,則子類必須實現抽象類的抽象方法,如果子類沒有實現父類的抽象方法,那子類必須定義為抽象類。
5、抽象類可以包含屬性、方法、構造方法,但構造方法不能用來實例化對象,只能被子類調用。

二、接口

接口可以看成是一種特殊的類,只能用interface關鍵字修飾。接口是提供給別人調用的。Java中的接口具有以下幾個特點:
1、接口中可以包含變量和方法,變量被隱式指定為public static final,方法被隱式指定為public abstract(JDK 1.8之前);
2、接口支持多繼承,即一個接口可以繼承(extends)多個接口,間接解決了Java中類不能多繼承的問題;
3、一個類可以同時實現多個接口,一個類實現某個接口則必須實現該接口中的抽象方法,否則該類必須被定義為抽象類;
4、JDK 1.8中對接口新增了兩個特性:
(1)默認方法(default method):JDK 1.8允許給接口添加非抽象的方法實現,但必須使用default關鍵字修飾;定義了default的方法可以不被實現子類所實現,但只能被實現子類的對象調用;如果子類實現了多個接口,并且這些接口包含一樣的默認方法,則子類必須重寫默認方法。
(2)靜態方法(static method):JDK 1.8中允許使用static關鍵字修飾一個方法,并提供實現,稱為接口靜態方法。接口靜態方法只能通過接口調用(接口名.靜態方法名)。
5、在JDK 1.9中,再次對接口進行了增強,可以實現private method和private static method。因為JDK 1.8中可以對接口中的方法進行實現,那么當我們不希望實現的方法暴露給外部時,則可以將方法定義為private。

三、接口與抽象類的區別

1、抽象類中可以包含普通方法,但接口中只能包含public abstract方法(JDK 1.8之前);
2、抽象類中的成員變量沒有訪問權限的限制,但接口中的變量只能被public static final修飾;
3、一個接口可以繼承多個接口,但一個類只能有一個父類,類可以實現多個接口;
4、抽象類是對一類事物的抽象,接口則是對行為的抽象。一個類繼承一個抽象類代表“是不是”的關系,而一個類實現一個接口則表示“有沒有”的關系。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

广丰县| 集贤县| 天全县| 武义县| 长白| 郸城县| 德州市| 和林格尔县| 青冈县| 兴业县| 和政县| 芮城县| 襄城县| 县级市| 古交市| 喀喇沁旗| 陆川县| 瓮安县| 宝鸡市| 元谋县| 綦江县| 罗江县| 凌云县| 南丹县| 来安县| 阜城县| 安康市| 江安县| 徐州市| 民勤县| 会昌县| 南和县| 贺州市| 泽州县| 沾化县| 积石山| 贵州省| 乌什县| 乌海市| 钟山县| 蕉岭县|