青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

woaidongmao

文章均收錄自他人博客,但不喜標(biāo)題前加-[轉(zhuǎn)貼],因其丑陋,見諒!~
隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
數(shù)據(jù)加載中……

java中的接口和抽象類區(qū)別

       首先,我們來看一下抽象類的概念,java編程思想中說萬物皆對象,我們知道所有的對象都是通過類來描繪的,但是反過來卻不是這樣。并不是所有的類都是用來描繪對象的,如果一個類中沒有包含足夠的信息來描繪一個具體的對象,這樣的類就是抽象類。抽象類是表征我們對問題領(lǐng)域進行分析、設(shè)計中得出的抽象概念,是對一系列看上去不同,但是本質(zhì)上相同的具體概念的抽象。好比,我們都知道三角形是一個形狀,世界上有三角形這樣具體的東西,但是確沒有形狀這樣具體的東西,我們要描述這個形狀的概念就要用到抽象類。因此在java中抽象類是不允許被實例化的。
在面向?qū)ο箢I(lǐng)域,抽象類主要用來進行類型隱藏。那什么是類型隱藏呢?我們可以構(gòu)造出一個固定的一組行為的抽象描述,但是這組行為卻能夠有任意個可能的具體實現(xiàn)方式。這個抽象描述就是抽象類,而這一組任意個可能的具體實現(xiàn)則表現(xiàn)為所有可能的派生類。好比,動物是一個抽象類,人、猴子、老虎就是具體實現(xiàn)的派生類,我們就可以用動物類型來隱藏人、猴子和老虎的類型。
再來看一下接口,接口是什么呢?Java中的接口是一系列方法的聲明,是一些方法特征的集合,一個接口只有方法的特征沒有方法的實現(xiàn),因此這些方法可以在不同的地方被不同的類實現(xiàn),而這些實現(xiàn)可以具有不同的行為(功能)。接口是一種特殊形式的抽象類。

抽象類和接口有很大的區(qū)別,首先,抽象類在Java語言中表示的是一種繼承關(guān)系,一個類只能使用一次繼承關(guān)系。但是,一個類卻可以實現(xiàn)多個接口。也許,這是Java語言的設(shè)計者在考慮Java對于多重繼承的支持方面的一種折中考慮吧。
其次,在抽象類的定義中,我們可以賦予方法的默認(rèn)行為。但是在接口的定義中,方法卻不能擁有默認(rèn)行為,為了繞過這個限制,必須使用委托,但是這會 增加一些復(fù)雜性,有時會造成很大的麻煩。
已經(jīng)提到過,抽象類在Java語言中體現(xiàn)了一種繼承關(guān)系,要想使得繼承關(guān)系合理,父類和派生類之間必須存在”is a”關(guān)系,即父類和派生類在概念本質(zhì)上應(yīng)該是相同的。對于接口來說則不然,并不要求接口的實現(xiàn)者和接口定義在概念本質(zhì)上是一致的,僅僅是實現(xiàn)了接口定義的契約而已。接口表示的是”like a”關(guān)系。

使用抽象類來定義允許多個實現(xiàn)的類型,比使用接口有一個明顯的優(yōu)勢:抽象類的演化比接口的演化要容易的多。在后續(xù)的發(fā)行版中,如果希望在抽象類中增加一個方法,只增加一個默認(rèn)的合理的實現(xiàn)即可,抽象類的所有實現(xiàn)都自動提供了這個新的方法。對于接口,這是行不通的。雖然可以在骨架實現(xiàn)類中增加一方法的實現(xiàn)來解決部分問題,但這不能解決不從骨架實現(xiàn)類繼承的接口實現(xiàn)的問題。由此,設(shè)計公有的接口要非常謹(jǐn)慎,一旦一個接口被公開且被廣泛實現(xiàn),對它進行修改將是不可能的。

所以,使用接口還是抽象類,取決于我們對問題的概念的本質(zhì)理解和設(shè)計的意圖。

//---------------------------------------------------------------------

        類描述了一個實體,包括實體的狀態(tài),也包括實體可能發(fā)出的動作。

  接口定義了一個實體可能發(fā)出的動作。但是只是定義了這些動作的原型,沒有實現(xiàn),也沒有任何狀態(tài)信息。

  所以接口有點象一個規(guī)范、一個協(xié)議,是一個抽象的概念;而類則是實現(xiàn)了這個協(xié)議,滿足了這個規(guī)范的具體實體,是一個具體的概念。

  從程序角度,簡單理解,接口就是函數(shù)聲明,類就是函數(shù)實現(xiàn)。需要注意的是同一個聲明可能有很多種實現(xiàn)。 

  1、接口中定義類方法的原型,但是不能說是空方法,因為空方法的意思是有實現(xiàn)體,只不過實現(xiàn)體是空操作。實際上接口沒有定義任何實現(xiàn)體。具體的實現(xiàn)體都是在實現(xiàn)接口的類中,接口只是定義了這些方法的調(diào)用方式。

  你當(dāng)然也可以不用接口,直接在類里面寫方法,但是如果你的一組方法需要在很多類里實現(xiàn),那么把它們抽象出來,做成一個接口規(guī)范,不是更好么?

  2、一個類描述了一個實體,這個實體可能是一個復(fù)雜的對象,它的動作很多,如果把這些動作分類,用接口a定義其中的某一組動作,接口b定義其中的另外一組動作,這樣的結(jié)構(gòu),比較清楚。

  這種方式具備了多繼承的優(yōu)點,避免了多繼承的缺陷。實際上在歷史上,接口在很大程度上,是為了解決多繼承帶來的種種問題而設(shè)計出來的。

  3、包中那些已定義的接口,怎么知道那里面定義了什么方法。

  接口里定義了方法的輸入輸出,這些都是協(xié)議,具體的實現(xiàn)都在每個類中。對于很多只需要抽象接口的地方,不需要知道具體的類是什么,只要這個類實現(xiàn)了這個接口就可以了。

 

當(dāng)然,以上只是對接口的初步認(rèn)識,在對面向?qū)ο蟪绦蛟O(shè)計有更深入的認(rèn)識以后,會發(fā)現(xiàn)接口有更廣泛的用途。

 

另外,抽象類不能被實例化,也就是說,不能創(chuàng)建抽象類的任何對象。必須創(chuàng)建抽象類的子類,然后再創(chuàng)建子類的對象。一個接口可以繼承多個接口,一個類可以實現(xiàn)多個接口。

 

posted on 2009-08-26 23:06 肥仔 閱讀(445) 評論(0)  編輯 收藏 引用 所屬分類: Web-后臺

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            久久久九九九九| 久久亚洲国产成人| 欧美激情导航| 亚洲欧美国产日韩天堂区| 99re6这里只有精品视频在线观看| 国产在线观看精品一区二区三区| 国产小视频国产精品| 国产伦精品一区二区三区| 国产美女精品视频| 在线不卡免费欧美| 亚洲精品中文在线| 在线视频你懂得一区二区三区| 99精品视频免费观看| 亚洲视频中文字幕| 欧美一区二区免费视频| 久久美女性网| 亚洲精品1区2区| 亚洲精品一区二区三区四区高清 | 亚洲免费黄色| 亚洲欧美日本伦理| 久久色在线播放| 亚洲精品视频免费在线观看| 在线午夜精品自拍| 久久国产精品久久w女人spa| 欧美精品久久久久a| 国产精品天天看| 亚洲人成高清| 欧美中文在线观看| 亚洲国产mv| 亚洲欧美国产77777| 免费视频久久| 国内视频一区| 亚洲欧美视频在线观看| 亚洲第一精品在线| 午夜精品久久久久久久99水蜜桃| 另类激情亚洲| 国产视频在线一区二区| 亚洲天堂成人在线视频| 欧美成人精品在线播放| 亚洲欧美视频在线观看视频| 欧美日韩成人| 亚洲人午夜精品免费| 久久精品国产精品亚洲综合| 一本一本久久a久久精品综合麻豆| 久久人人爽人人爽爽久久| 欧美四级电影网站| 亚洲免费观看| 亚洲福利在线看| 久久九九免费| 国产一区香蕉久久| 性色av一区二区三区| 亚洲毛片一区二区| 欧美精品一区二区三| 亚洲高清三级视频| 久久久青草青青国产亚洲免观| 久久久久久夜精品精品免费| 好吊一区二区三区| 在线视频亚洲一区| 91久久久久久久久| 毛片基地黄久久久久久天堂| 国产日韩在线视频| 亚洲欧美成人| 亚洲在线一区二区三区| 欧美日韩精品欧美日韩精品| 亚洲国产一区二区视频| 欧美成人福利视频| 久久九九国产精品| 国内精品久久久久影院色| 久久精品1区| 欧美在线观看天堂一区二区三区| 国产裸体写真av一区二区| 小黄鸭精品密入口导航| 亚洲一区三区视频在线观看| 国产精品久久久久久久电影| 午夜亚洲视频| 欧美一区二区三区免费在线看| 国产色视频一区| 另类人畜视频在线| 快播亚洲色图| 亚洲伦理在线| 亚洲免费在线看| 国产综合精品| 欧美18av| 国产精品v日韩精品| 久久国产精品亚洲va麻豆| 欧美在线日韩精品| 亚洲欧洲偷拍精品| 日韩一级网站| 国产视频久久| 亚洲国产精品电影| 国产精品久久久久久久久久免费| 欧美一区=区| 麻豆精品传媒视频| 亚洲欧美欧美一区二区三区| 久久成人人人人精品欧| 亚洲人成网站777色婷婷| 亚洲视频在线一区| 在线观看亚洲视频| 亚洲精品国产精品国自产观看浪潮 | 久久亚洲国产精品日日av夜夜| 亚洲精品在线二区| 亚洲一区二区三区免费视频| 亚洲国产第一页| 亚洲综合国产精品| 亚洲美女尤物影院| 久久精品国产一区二区电影 | 久久久综合网站| 欧美老女人xx| 欧美成人精品在线观看| 欧美性一二三区| 欧美gay视频激情| 国产午夜精品在线| 亚洲裸体在线观看| 黑丝一区二区三区| 亚洲全黄一级网站| 在线观看日韩av| 欧美一区二区三区久久精品| 国产精品久久久久毛片软件| 欧美电影免费| 国产精品区免费视频| 亚洲高清中文字幕| 韩国av一区二区三区四区| 亚洲人成艺术| 在线免费观看日本一区| 午夜一区在线| 亚洲专区国产精品| 欧美日韩激情小视频| 欧美激情一区二区三区高清视频| 国产一区二区三区黄视频| 在线综合亚洲欧美在线视频| 欧美日韩一区二区三区在线看| 欧美成人视屏| 樱桃国产成人精品视频| 亚洲欧美日韩综合一区| 亚洲欧美在线视频观看| 欧美日韩精品在线观看| 亚洲人成人一区二区三区| 亚洲美女视频| 狂野欧美激情性xxxx| 欧美成人乱码一区二区三区| 在线播放国产一区中文字幕剧情欧美| 亚洲欧美另类在线观看| 欧美在线视频不卡| 国产精品亚发布| 欧美尤物巨大精品爽| 久久精品国产精品| 好吊一区二区三区| 久久精品女人| 男同欧美伦乱| 免费亚洲电影| 99re66热这里只有精品4| 中日韩美女免费视频网址在线观看 | 欧美成人69| 亚洲精品影视| 欧美日韩在线观看一区二区三区 | 亚洲精品国产精品国自产观看 | 国产精品第三页| 亚洲一区二区三区涩| 久久精品国产999大香线蕉| 国外成人在线| 欧美gay视频激情| 一区二区三区国产在线| 午夜精品久久99蜜桃的功能介绍| 国产女主播视频一区二区| 久久久久久亚洲精品杨幂换脸 | 亚洲成人中文| 欧美另类视频在线| 亚洲欧美日韩一区二区| 麻豆精品视频在线| 国产欧美在线| 久久国产综合精品| 亚洲国产精品久久| 亚洲女同精品视频| 在线国产亚洲欧美| 国产精品播放| 免费成人网www| 亚洲一区二区在线观看视频| 美女国产精品| 欧美一级理论性理论a| 亚洲欧洲日夜超级视频| 国产色综合久久| 欧美日韩一区二区高清| 久久久女女女女999久久| 中国成人黄色视屏| 欧美高清在线一区| 欧美综合第一页| 亚洲视频久久| 91久久精品日日躁夜夜躁国产| 国产精品资源在线观看| 欧美日韩国产一区二区三区| 久久天天狠狠| 欧美一区二区免费| 亚洲午夜精品久久久久久浪潮| 亚洲电影观看| 欧美成人一品| 女人色偷偷aa久久天堂| 久久久欧美一区二区| 欧美专区在线播放| 午夜在线观看欧美| 亚洲私人影吧|