<em id="0a85b"><option id="0a85b"></option></em>

<abbr id="0a85b"></abbr>

      <nobr id="0a85b"></nobr>
        <tr id="0a85b"></tr>
        9久久伊人精品综合,亚洲一区精品视频在线,成 人免费va视频,国产一区二区三区黄网,99国产精品永久免费视频,亚洲毛片多多影院,精品久久久无码人妻中文字幕,无码国产欧美一区二区三区不卡
        學習啦>知識大全>知識百科>百科知識>

        java中接口和抽象類的區別是什么

        時間: 映芳735 分享

          對于面向對象編程來說,抽象是它的一大特征之一。在Java中,可以通過兩種形式來體現OOP的抽象:接口和抽象類。這兩者有太多相似的地方,又有太多不同的地方。很多人在初學的時候會以為它們可以隨意互換使用,但是實際則不然。下面,就讓學習啦小編帶大家去了解一下接口和抽象類的區別吧!

          1.接口

          接口,英文稱作interface,在軟件工程中,接口泛指供別人調用的方法或者函數。從這里,我們可以體會到Java語言設計者的初衷,它是對行為的抽象。在Java中,定一個接口的形式如下:

          接口中可以含有 變量和方法。但是要注意,接口中的變量會被隱式地指定為public static final變量(并且只能是public static final變量,用private修飾會報編譯錯誤),而方法會被隱式地指定為public abstract方法且只能是public abstract方法(用其他關鍵字,比如private、protected、static、 final等修飾會報編譯錯誤),并且接口中所有的方法不能有具體的實現,也就是說,接口中的方法必須都是抽象方法。

          從這里可以隱約看出接口和抽象類的區別,接口是一種極度抽象的類型,它比抽象類更加“抽象”,并且一般情況下不在接口中定義變量。

          2.抽象類

          抽象方法必須用abstract關鍵字進行修飾。如果一個類含有抽象方法,則稱這個類為抽象類,抽象類必須在類前用abstract關鍵字修飾。因為抽象類中含有無具體實現的方法,所以不能用抽象類創建對象。

          3.抽象類和普通類的主要有三點區別

          1)抽象方法必須為public或者protected(因為如果為private,則不能被子類繼承,子類便無法實現該方法),缺省情況下默認為public。

          2)抽象類不能用來創建對象;

          3)如果一個類繼承于一個抽象類,則子類必須實現父類的抽象方法。如果子類沒有實現父類的抽象方法,則必須將子類也定義為為abstract類。

          4.接口和抽象類的區別

          A.語法層面上的區別

          1)抽象類可以提供成員方法的實現細節,而接口中只能存在public abstract 方法;

          2)抽象類中的成員變量可以是各種類型的,而接口中的成員變量只能是public static final類型的;

          3)接口中不能含有靜態代碼塊以及靜態方法,而抽象類可以有靜態代碼塊和靜態方法;

          4)一個類只能繼承一個抽象類,而一個類卻可以實現多個接口。

          B.設計層面上的區別

          1)抽象類是對一種事物的抽象,即對類抽象,而接口是對行為的抽象。抽象類是對整個類整體進行抽象,包括屬性、行為,但是接口卻是對類局部(行為)進行抽象。舉個簡單的例子,飛機和鳥是不同類的事物,但是它們都有一個共性,就是都會飛。那么在設計的時候,可以將飛機設計為一個類Airplane,將鳥設計為一個類Bird,但是不能將 飛行 這個特性也設計為類,因此它只是一個行為特性,并不是對一類事物的抽象描述。此時可以將 飛行 設計為一個接口Fly,包含方法fly( ),然后Airplane和Bird分別根據自己的需要實現Fly這個接口。

          然后至于有不同種類的飛機,比如戰斗機、民用飛機等直接繼承Airplane即可,對于鳥也是類似的,不同種類的鳥直接繼承Bird類即可。從這里可以看出,繼承是一個 "是不是"的關系,而 接口 實現則是 "有沒有"的關系。如果一個類繼承了某個抽象類,則子類必定是抽象類的種類,而接口實現則是有沒有、具備不具備的關系,比如鳥是否能飛(或者是否具備飛行這個特點),能飛行則可以實現這個接口,不能飛行就不實現這個接口。

          2)設計層面不同,抽象類作為很多子類的父類,它是一種模板式設計。而接口是一種行為規范,它是一種輻射式設計。什么是模板式設計?最簡單例子,大家都用過ppt里面的模板,如果用模板A設計了ppt B和ppt C,ppt B和ppt C公共的部分就是模板A了,如果它們的公共部分需要改動,則只需要改動模板A就可以了,不需要重新對ppt B和ppt C進行改動。

          而輻射式設計,比如某個電梯都裝了某種報警器,一旦要更新報警器,就必須全部更新。也就是說對于抽象類,如果需要添加新的方法,可以直接在抽象類中添加具體的實現,子類可以不進行變更;而對于接口則不行,如果接口進行了變更,則所有實現這個接口的類都必須進行相應的改動。

        java中接口和抽象類的區別是什么

        對于面向對象編程來說,抽象是它的一大特征之一。在Java中,可以通過兩種形式來體現OOP的抽象:接口和抽象類。這兩者有太多相似的地方,又有太多不同的地方。很多人在初學的時候會以為它們可以隨意互換使用,但是實際則不然。下面,就讓
        推薦度:
        點擊下載文檔文檔為doc格式
        537331 主站蜘蛛池模板: 欧洲中文字幕一区二区| 成人国产精品一区二区不卡 | 精品国产亚洲av麻豆特色| 一区二区三区四区自拍视频| 日韩高清福利视频在线观看| 韩国福利视频一区二区三区| 亚洲国产综合一区二区精品| 国产亚洲亚洲国产一二区| 伊人久久大香线蕉AV网禁呦| 宝贝腿开大点我添添公口述视频| 午夜免费福利小电影| 国产中文字幕精品在线| 亚洲欧美日韩成人综合一区| 成人免费视频在线观看播放| 国产无套乱子伦精彩是白视频| 鲁丝一区二区三区免费| 亚洲第一极品精品无码久久| 成人影片麻豆国产影片免费观看 | 九九热精品免费在线视频| 亚洲老女人区一区二视频| 国产成人啪精品午夜网站| 中文字幕乱码一区二区免费| 国产中文字幕精品在线| 又爽又黄又无遮掩的免费视频| 国产小受被做到哭咬床单GV| 国产精品国产三级国快看| 国产在线精品第一区二区| 青春草公开在线视频日韩| 午夜男女爽爽影院免费视频下载| 99在线视频免费观看| 久9re热视频这里只有精品免费| 韩国一级毛片中文字幕| 在线看国产精品自拍内射| 日韩一卡2卡3卡4卡新区亚洲| 亚洲成精品动漫久久精久| 在线a人片免费观看| 尤物视频在线播放你懂的| 2021在线精品自偷自拍无码| 亚洲av无码av在线播放| 日吹毛片日韩v国产v亚洲v精品v| 国产在线拍揄自揄视精品不卡 |