日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

java的接口理解_原来Java的接口可以这样理解

發布時間:2025/3/20 java 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java的接口理解_原来Java的接口可以这样理解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

為什么寫這篇文章

今天有人問了我這樣一個問題

Java中為什么要使用接口呢?

還要先定義了一個接口,類還要實現接口的方法,還不如直接在這個類中寫實現方法呢,根本沒必要定義接口啊。

大概就是這樣一個問題。

這個問題不止困擾很多初學者,有的2年工作經驗都不太理解,接口到底是個什么東西。

這里根據本人對接口的理解,簡單談談如何理解接口,如有錯誤,請指正。

接口是什么

接口首先是個規范(也可以叫協議,覺得怎么理解方便怎么理解就好)

先舉個生活中的例子

某天你去上海去旅游,做了半天的車,下車后有點餓,想吃點東西,找了一個上海菜的飯店。進去準備吃東西。

這里的菜單就是一個特別形象的接口。

看菜單我就知道這家店賣紅燒肉,生煎包, 手撕雞, 清蒸大閘蟹、蟹粉小籠、蟹粉豆腐,八寶鴨等等菜品。然后我就可以直接點點餐, 來個紅燒肉,生煎包,來個XX湯。搞定。

樓主是東北人,如果沒有菜單,我進去可能會問有沒有小雞燉蘑菇、豬肉燉粉條。然后告訴我都沒有。這樣一個一個的問非常麻煩,而且還未必知道點什么。那我就要問你這都有什么啊,服務員跟我balabala一堆,我還沒記住都有什么,這點餐是不是特別麻煩呢,有了菜單簡單多了。這里的菜單就可以理解為一個接口。顧客就是接口的調用者,廚房就是接口的實現類,會根據接口提供的方法,提供各種菜品。

上面的例子代表了接口一個重要作用,接口首先是個規范。這個規范很方便調用者去使用。就是上面的顧客,顧客不需要知道你是怎么做的紅燒肉,只需要知道你有紅燒肉就夠了。這個情況下就非常適合使用接口了。

總結:接口是為2個不同類之間連接定義的標準。上面的顧客和廚房,直接用菜單連接起來。

職責的分離

還是拿生活中最常見的東西舉例子。

這個是插排

插排, 應該是家里都有的東西了,插排的插孔一般有2個的也有三個的。現在很多插排還提供了USB口。這里我們可以把2口的插孔,三口的插孔。還有USB口的插孔理解位三個不同的接口。個接口定義了插排孔的大小,和距離。有這樣的接口,我才能通過接口或者說是規范去生產插排,然后才能提供給你使用。如果我提供的接口比較小你手機的充電頭插不進去,那么我生產了是不是沒有意義呢。我生產的插排是為了給用戶使用的,而使用插排的就是插排的調用者,就是一個個具體的插頭,如果用戶的插頭是USB的那普通的插排就無法使用。這時候用戶就需要找到一個實現了USB接口的插排。而用戶卻不用關心你是如何實現的,也不需要考慮你生產的是什么樣子,只要你按接口實現就可以了。上圖給了不同類型的插排,雖然樣子各異,功能也不完全一樣,但是他們都實現了具體的接口。

通過上面的例子,我們定義了三個不同的接口,每個接口有不同的具體實現。但是具體實現是誰作為調用者完全不關系,是公牛插排也好,小米插排也好,或者是飛利浦也無所謂。這就出現了接口的一個重要思想,接口和實現分離的思想。這個思想的一個最直接的好處就是,代碼的解耦。插頭的制造過程不考慮插排的具體實現,而只是按照標準接口實現就可以。而插排的制造也不需要具體的插頭。根本不需要考慮是誰去使用,不管是手機用電腦用,電視用或者別的東西。我只要按標準生產我的就行了。這樣分工就非常明確了。減少了耦合度。使插排的制造和插頭的制造都變得更加容易。而且更加的具有適應性。

結尾

本來還有一些東西需要寫一下。暫時先總結一下,以后補充上。

第一接口可以理解位一個規范。這個規范規定了一個類的部分行為,而不是全部行為。

比如上面的例子我們有三個接口。有的插排只實現了其中的兩個,而沒有USB接口。那么不需要USB接口的調用者,比如電視機就可以使用這個插排。

接口可以隔離實現,對于接口的調用者,不需要考慮他調用哪個具體實現類,如果沒有接口,那么電視可能就是位固定的插排生產的,這樣做一般也沒什么,只要插排沒有問題,電視還是可以用的,但是有一天插排出了問題,你需要換個插排的時候。因為沒有固定的接口,那么其他人生產的插排可能完全用不了。

如果兩個類都是按同一個標準實現了一個同名的方法,那么是不是也可以呢,理論個別情況可以,但是這里就出現另一個問題,就是如果他們只是方法名相同,但是沒有實現同一個接口,那么對于調用者來說,他需要非常明白兩個類的這個方法都是具體做什么才可以這樣用,如果使用接口,調用者就不需要考慮這個問題,而直接調用接口的這個方法就行了。

還有一個重點要說的地方。就是接口有一個好處就是實現了,接口和實現的分離,如果不理解這句話,用另外一個意思理解,定義和實現相分離,接口只是對某一類東西的定義,而具體實現就是具體的類,分離有一個好處就是,可以更好的隱藏實現。很多時候實現是不希望被調用者看到具體的實現細節的。而只是位調用者提供幾個方法,這個時候接口就特別有用了。

比如上面吃飯的例子,用戶只是看了菜單而已,但是具體如何做的菜,用戶是不知道的。飯店也不提供廚房給用戶參觀,對用戶來說,廚房用了什么東西根本不知道,而飯店很多時候希望這樣的結果,比如豆油,有各種價格的,可以用低價的提供。米飯也一樣。雖然這不是個好想法。

關于我

我是IsCoding,7年Android從業經驗。

QQ群號 121915371

QQ 號 1400100300

總結

以上是生活随笔為你收集整理的java的接口理解_原来Java的接口可以这样理解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 艳母日本动漫在线观看 | 香蕉视频成人在线 | 调教驯服丰满美艳麻麻在线视频 | 日韩在线成人 | 又黄又爽在线观看 | 欧美特级aaa | 国产亚洲一区二区三区 | 麻豆传媒观看 | 亚洲视频一区二区三区在线观看 | 生活片一级片 | 超碰婷婷 | 亚洲视频综合网 | 另类捆绑调教少妇 | 米奇影音| 中文字幕第88页 | 性xxxxxxxxx18欧美 | 新版天堂资源中文8在线 | 午夜视频一区二区三区 | www.国产在线视频 | 成人欧美一区二区三区黑人孕妇 | 色乱码一区二区三在线看 | 清冷男神被c的合不拢腿男男 | 一区二区三区四区在线视频 | 亚洲第一二三四区 | jizzjizz亚洲 | 久久r精品 | 亚洲精品乱码久久久久久黑人 | 欧美99视频 | 亚洲生活片 | 亚洲欧美a| 亚洲国产电影在线观看 | 麻豆免费看片 | 亚色视频在线观看 | 日韩激情av在线 | 国产精品色哟哟 | 日韩视频中文字幕 | 欧美激情一区二区三区 | 草久在线观看视频 | 亚洲一区二区三区视频在线 | 天天综合影院 | 国产精品嫩草久久久久 | 90岁肥老奶奶毛毛外套 | 国产日韩精品视频 | 色资源av | 欧美色图亚洲视频 | 2021av视频 | 国产91免费在线观看 | 欧美一区二区三区成人精品 | 人妻91麻豆一区二区三区 | 动漫女生光屁股 | 熟妇高潮一区二区三区在线播放 | 国产真实夫妇交换视频 | 天堂免费在线视频 | 国产美女久久 | 亚洲天堂av中文字幕 | 人人澡人人透人人爽 | 欧美专区视频 | 色综合久久网 | 欧美精品极品 | 六月天综合网 | 国产在线观看99 | 秘密基地电影免费版观看国语 | 午夜国产免费 | 激情第一页 | 2019中文字幕在线观看 | 老司机深夜网站 | 琪琪色视频 | 精品久久久久久国产 | 欧美91精品久久久久国产性生爱 | 欧美高清视频 | 欧美10p | 亚洲自拍电影 | 久久网站视频 | 男人天堂av网 | 免费色网 | yjizz视频网 国产乱人对白 | 欧美日韩卡一卡二 | 理论片中文字幕 | 啪啪网站视频 | 超碰成人97| 日本在线不卡一区二区三区 | 深夜久久| 国产大片一区 | 91九色成人 | 夜夜春影院 | 欧美亚洲在线视频 | 国产精品欧美激情 | 久久久美女视频 | 国产美女自拍视频 | 久草电影在线 | 久操香蕉| 国产福利91精品一区二区三区 | va在线视频 | av中文字幕一区 | 四虎影院在线看 | 黄色99| www婷婷av久久久影片 | 在线观看免费高清 | 在线爱情大片免费观看大全 |