首页 > 代码库 > Java接口

Java接口

接口是一组对类的需求描述,这些类要遵从接口描述的统一格式进行定义。

“如果你的类遵从某个特定接口,那么我就履行这项服务”。

一个具体的例子:Arrays类中的sort方法承诺可以对对象数组进行排序,但要求满足一个前提:对象所属的类必须实现了Comparable接口。

如:

class Employee implements Comparable<Employee>{
    private double salary;
    public int compareTo(Employee other){
        if(salary<other.salary) return -1;
        if(salary>other.salary) return 1;
        return 0;
    }
}

这样就可以对Employee数组如employees进行排序了:Arrays.sort(employees);

为什么不能直接提供一个compareTo方法,而必须实现Comparable接口呢?

主要原因在于Java程序设计语言是一种强类型(strongly typed)语言。在调用方法如sort时,编译器将会检查这个方法compareTo是否存在 。为此,编译器必须确认数组成员a[i]一定有compareTo方法。

接口七大特性:

1、接口不是类,尤其是不能使用new运算符实例化一个接口

2、可以声明接口变量,接口变量必须引用实现了接口的类对象

3、可以使用instanceof检查一个对象是否实现了某个特定的接口

4、可用extends关键字扩展接口

5、尽管在接口中不能包含实例域或静态方法,但是可以包含常量

6、与接口中的方法一样,接口中的域也自己地设为public static final

7、尽管每个类只能够拥有一个超类,但却可以实现多个接口(与抽象类相比的优势之一)