接口定義加強

在講解接口定義加強之前,首先看看分析一個實際問題。
當一個接口的子類經過發展后,形成眾多后代,如果此時發現接口中應該還有新加一個方法,此時怎么辦?

  • 接口中新增一個方法聲明,然后所有子類粘貼無數次;
  • 或者,如果所有的子類都使用了抽象類,那么就要對所有的子類考慮繼承關系。
    造成這個尷尬局面的原因是:接口只是聲明了方法,而沒有具體的實現。隨著時間的推進,如果出現了上述問題,該接口就將作廢。

JDK8中為了解決上述問題,專門提供了兩類新的結構:

  • 通過default定義普通方法,需要通過對象調用
  • 使用static來定義普通方法,可以通過類名進行調用
接口上追加的新功能
接口上的新功能2

新功能的接口更加類似抽象類了,區別在于,接口依然可以實現多繼承,但是抽象類卻只能單繼承。

總結

  1. 最好不要在程序設計初期就進行接口定義加強的使用,這樣破壞了接口的設計規范;
  2. 接口定義加強是由于時間一長,許多支持出現問題時候,才提出的一種挽救性的操作,不屬于標準設計。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,740評論 18 399
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,845評論 25 708
  • 本文出自 Eddy Wiki ,轉載請注明出處:http://eddy.wiki/interview-java.h...
    eddy_wiki閱讀 1,224評論 0 5
  • 這篇文章是一個星期之前就寫完了的,但是沒有電子存檔,我還是喜歡用紙筆寫東西的感覺. 參加學霸貓的 BVM 課程,收...
    小浩loft閱讀 846評論 1 51
  • 朋友L是一名鋼琴老師,平時接觸的孩子和家長都比較多。昨天她問我:你能給予你孩子的愛是什么? 我想了想,分為兩個答案...
    吉祥小姐姐閱讀 427評論 0 0