不斷發(fā)展的接口
考慮一下你開(kāi)發(fā)的名為DoIt的接口:
public interface DoIt { void doSomething(int i, double x); int doSomethingElse(String s); }
假設(shè)稍后你要向DoIt添加第三個(gè)方法,這樣現(xiàn)在接口變?yōu)椋?/p>
public interface DoIt { void doSomething(int i, double x); int doSomethingElse(String s); boolean didItWork(int i, double x, String s); }
如果進(jìn)行此更改,那么實(shí)現(xiàn)舊DoIt接口的所有類都將中斷,因?yàn)樗鼈儾辉賹?shí)現(xiàn)舊接口,依賴此接口的程序員將大聲抗議。
嘗試預(yù)測(cè)接口的所有用途,并從一開(kāi)始就完全指定它,如果要向接口添加其他方法,可以使用多個(gè)選項(xiàng),你可以創(chuàng)建一個(gè)擴(kuò)展DoIt的DoItPlus接口:
public interface DoItPlus extends DoIt { boolean didItWork(int i, double x, String s); }
現(xiàn)在,你的代碼用戶可以選擇繼續(xù)使用舊接口或升級(jí)到新接口。
或者,你可以將新方法定義為默認(rèn)方法,以下示例定義名為didItWork的默認(rèn)方法:
public interface DoIt { void doSomething(int i, double x); int doSomethingElse(String s); default boolean didItWork(int i, double x, String s) { // Method body } }
請(qǐng)注意,你必須提供默認(rèn)方法的實(shí)現(xiàn),你還可以為現(xiàn)有接口定義新的靜態(tài)方法,具有實(shí)現(xiàn)使用新的默認(rèn)或靜態(tài)方法增強(qiáng)的接口的類的用戶不必修改或重新編譯它們以適應(yīng)額外方法。
上一篇:將接口用作類型 下一篇:默認(rèn)方法文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/72879.html
摘要:前后端分離的開(kāi)發(fā)方式在最近幾年突然火起來(lái),松哥認(rèn)為有兩方面的原因前端的發(fā)展。不變其實(shí)除了前后端交互方式發(fā)生變化之外,其他的地方都是不變的。 事情的起因是這樣的,有個(gè)星球的小伙伴向邀請(qǐng)松哥在知乎上回答一個(gè)問(wèn)題,原題是: 前后端分離的時(shí)代,Java后臺(tái)程序員的技術(shù)建議? 松哥認(rèn)真看了下這個(gè)問(wèn)題,感覺(jué)對(duì)于初次接觸前后端分離的小伙伴來(lái)說(shuō),可能都會(huì)存在這樣的疑問(wèn),于是決定通過(guò)這篇文章和大家聊一...
摘要:自制力好的人,估計(jì)在保存后會(huì)翻出來(lái)看兩眼,過(guò)幾天又忘得一干二凈了。多思考學(xué)會(huì)思考,養(yǎng)成多思考的習(xí)慣。以項(xiàng)目來(lái)驅(qū)動(dòng)自己學(xué)習(xí),整個(gè)過(guò)程將會(huì)有趣得多。后語(yǔ)以上就是我對(duì)自學(xué)的幾點(diǎn)建議,希望對(duì)你們有幫助。 微信公眾號(hào):一個(gè)優(yōu)秀的廢人如有問(wèn)題或建議,請(qǐng)后臺(tái)留言,我會(huì)盡力解決你的問(wèn)題。 showImg(https://segmentfault.com/img/remote/1460000018208...
將接口用作類型 定義新接口時(shí),你將定義新的引用數(shù)據(jù)類型,你可以在任何可以使用任何其他數(shù)據(jù)類型名稱的地方使用接口名稱,如果定義類型為接口的引用變量,則分配給它的任何對(duì)象都必須是實(shí)現(xiàn)接口的類的實(shí)例。 作為示例,這里是一種用于查找一對(duì)對(duì)象中的最大對(duì)象的方法,用于從實(shí)現(xiàn)Relatable的類實(shí)例化的任何對(duì)象: public Object findLargest(Object object1, Object...
Java? 教程 Java教程是為JDK 8編寫(xiě)的,本頁(yè)面中描述的示例和實(shí)踐沒(méi)有利用在后續(xù)版本中引入的改進(jìn)。 Java教程是希望使用Java編程語(yǔ)言創(chuàng)建應(yīng)用程序的程序員的實(shí)用指南,其中包括數(shù)百個(gè)完整的工作示例和數(shù)十個(gè)課程,相關(guān)課程組被組織成教程。 覆蓋基礎(chǔ)知識(shí)的路徑 這些教程以書(shū)籍的形式提供,如Java教程,第六版,前往Amazon.com購(gòu)買(mǎi)。 入門(mén) 介紹Java技術(shù)和安裝Java開(kāi)發(fā)軟件并使用...
摘要:所以要想做好中級(jí)軟件測(cè)試工程師,第一步就是能夠完成接口測(cè)試。通常情況下,接口測(cè)試最多還是使用工具來(lái)完成原因無(wú)他,高效。 想來(lái)我26歲才正式投身進(jìn)入軟件測(cè)試行業(yè);通過(guò)...
閱讀 2931·2023-04-25 19:08
閱讀 1421·2021-11-16 11:45
閱讀 1980·2021-10-13 09:40
閱讀 4147·2021-09-30 09:47
閱讀 2421·2019-08-30 15:44
閱讀 2286·2019-08-30 13:03
閱讀 1394·2019-08-30 12:56
閱讀 1896·2019-08-26 14:04