日韩性视频-久久久蜜桃-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的接口可以这样理解的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产91网址| 9.1成人看片免费版 日韩经典在线 | 97精品国产97久久久久久免费 | 国产盗摄一区二区三区 | 风间由美一区二区三区 | 三级在线观看网站 | 成人91网站| 超碰在线人人 | 国产欧美一区二区三区沐欲 | 欧美日韩一区二区在线 | 久久大胆 | 婷婷影院在线观看 | 九九热九九 | 国产九一精品 | 91av入口 | 美女三级黄色 | 韩日精品在线 | av导航站 | 午夜免费福利 | 日韩 国产 一区 | 亚洲一级黄色大片 | 天天躁日日躁狠狠躁 | 黄色九九| 好吊妞在线观看 | 国产美女免费看 | 欧美黄色一区二区三区 | 中文字幕二区 | 亚洲高清资源 | 天堂视频免费看 | 91色九色| xx色综合 | 国产视频你懂得 | 成人a级免费视频 | 九九黄色| 日韩欧美亚洲一区二区三区 | 美女啪啪av | 天天激情站 | 久久人人精品 | 涩涩涩涩涩涩涩涩涩 | 91精品亚洲一区 | 黑白配高清国语在线观看 | 日本精品免费在线观看 | 91色拍| 精品国精品国产自在久不卡 | 国产黄色在线网站 | 亚洲无码精品在线观看 | www.亚洲天堂 | 黄色大尺度视频 | 亚洲2022国产成人精品无码区 | 亚洲成人黄 | 岛国精品在线播放 | 天天碰天天 | 亚洲成a人片在线 | 久久国语对白 | 俺去草 | 神马午夜在线观看 | 久久99九九 | 黄视频在线观看免费 | 综合伊人久久 | 红桃av在线| 色综合中文 | 网爆门在线 | 男女激情大尺度做爰视频 | 九九操| 久久久久九九九九 | 久操精品视频 | www视频在线免费观看 | 手机看片日韩在线 | 男人的天堂va | 久久久久久久久久久丰满 | 黄色一级视频免费观看 | 法国经典free性复古xxxx | 91精品国产综合久久国产大片 | 淫片在线 | 日韩欧美毛片 | 亲吻刺激视频 | 国产亚洲在线观看 | 色网在线| 亚洲男人网站 | 伊人中文字幕在线 | 天天爽影院 | 国产激情自拍视频 | 国产美女作爱全过程免费视频 | 污网站免费看 | 色网在线视频 | 99久久99久久免费精品蜜臀 | 依人在线视频 | 国产 日韩 欧美 成人 | 五月婷婷一区二区 | 最近高清中文在线字幕在线观看 | 久久精品日韩无码 | 日韩久久久久久 | 巨胸喷奶水www久久久免费动漫 | 日日骚影院 | 欧美成人一二三 | 欧洲一区在线 | 福利视频一区二区 | 日本久久精品 | 国产高清在线视频 |