接口
6.1.1接口概念
01:接口并不是类,而是对类的描述,前提是这些类要遵从接口描述的统一格式进行定义。
例: Arrays 类中的 sort 方法承诺可以对对象数组进行排序 , 但要求满足下列前提 : 对象所属的类必须实现了 Comparable 接口。
public interface Comparable <T> // 泛型
{
int compareTo ( T other ) ; / / 参数类型为T:
}
02:接口中的所有方法都是public
在调用x.compareTo(y)
的时候, 这个compareTo
方法必须确实比较两个对象的内容 , 并返回比较的结果 。 当 x 小于 y 时 , 返回一个负数 ; 当 x 等于 y 时 , 返回 0 ; 否则返回一个正数。
例: 假设希望使用 Arrays 类的 sort 方法对 Employee 对象数组进行排序。
让类实现一个接口,需要:
1)将类声明为实现给定的接口 。
2)对接口中的所有方法进行定义 。
3)要将类声明为实现某个接口 , 需要使用关键字 implements
public int compareTo ( Object otherObject )
{
Employee other = ( Employee ) otherObject ;
return Double.compare( salary , other.salary )
}
在这里, 我们使用了静态Double.compare 方法, 如果第一个参数小于第二个参数 , 它会返回一个负值 ; 如果二者相等则返回 0;否则返回一个正值。
03:为什么必须实现Comparable接口呢?
主要原因在于 Java 程序设计语言是一种强类型 ( strongly typed ) 语言 。 在调用方法的时候 , 编译器将会检查这个方法是否存在 。