Java 中的接口有什麼作用?

  “接口是個規範”,這句沒錯。

  “不如直接就在這個類中寫實現方法豈不是更便捷”,你怎麼保證這個接口就一個類去實現呢?如果多個類去實現同一個接口,程序怎麼知道他們是有關聯的呢?

  既然不是一個類去實現,那就是有很多地方有用到,大家需要統一標準。甚至有的編程語言(Object-C)已經不把接口叫 interface,直接叫 protocol。

  統一標準的目的,是大家都知道這個是做什麼的,但是具體不用知道具體怎麼做。

  比如說:

  我知道 Comparable 這個接口是用來比較兩個對象的,那麼如何去比較呢?

  數字有數字的比較方法,字符串有字符串的比較方法,學生(自己定義的類)也有自己的比較方法。

  然後,在另外一個負責對象排序(不一定是數字喔)的代碼裏面,肯定需要將兩個對象比較。

  這兩個對象是什麼類型呢?

  Object a,b?肯定不行,a > b 這樣的語法無法通過編譯。

  int a,b?也不行?一開始就說了,不一定是數字。

  ....

  所以,Comparable 就來了。他告訴編譯器,a b 兩個對象都滿足 Comparable 接口,也就是他們是可以進行比較的。具體怎麼比較,這段程序不需要知道。

  所以,他需要一些具體的實現,Comparable 接口有一個方法,叫 compareTo。那麼這個方法就是用來取代 <、> 這樣的運算符。

  因爲運算符是編譯器保留給內置類型(整數、浮點數)進行比較用的,而不是一個廣義的比較運算。

  如果你可以明白 JDK 自身庫裏面諸如 Comparable 這樣已經有的接口,那麼就很容易理解自己在開發程序的時候爲什麼需要用到接口了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章