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的位置,结果的符号也应该调换。