1 接口的注意事項
- 接口主要用來描述類具有什麼功能,而並不給出每個功能具體實現。一個類可以實現多個接口。
- 接口中所有的方法自動屬於public,在聲明接口的時候不必提供關鍵字public。接口中的方法僅能由 public, abstract, default, static 來修飾。在實現接口時,必須把方法聲明爲public;否則,編譯器將認爲這個方法屬於包可見性,即默認的訪問屬性,編譯器將會報錯因爲降低了父類(接口)的方法可見性。
- 在接口中不能包含實例域和靜態方法,但可以包含常量。如果在接口了定義了類似的賦值語句 如 int a=100,接口會默認在a前加上public static final修飾,將它作爲常量。
2 Comparable接口
Comparable接口是一個功能性的接口,一個類實現了這個接口,就可以對類的對象進行比較“大小”。而我們最常見的比較大小的地方就是排序的時候,所用當一個類的對象放入像sortedMap這種集合,或者是在想利用Arrays,sort算法對集合進行排序的時候,就需要實現這樣一個接口。
這個接口很簡單,只有一個CompareTo方法。如果這個對象小於other則返回負值;如果相等返回0;否則返回正值。
對於這個方法,Java存在一些規定
對於任意的x和y,必須保證sgn(x.compareTo(y))=-sgn(y.compareTo(x))。簡單的說,如果調換x和y的位置,結果的符號也應該調換。