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