接口技术主要是用来描述类具有什么功能,而并不是给出每个功能的具体实现。
我们要明确的是接口不是类,他是对类的一种需求描述,他只有方法头没有方法体。
在接口声明中所有的方法自动是public,并且也必须声明为public,否则编译器将认为这个方法的访问属性是包可见性的。
更重要的一点是不能使用new运算符实例化一个接口:
例如有这样的接口
public interface Comparable{
int move(int x,int y);
}
class Employee implement Comparable {
public int move(Employee other){
}
}
Employee类实现了接口,可以写
x = new Employee(...);
但是不能构造接口的对象,只能声明接口的变量,类似:
Comparable x;
接口与抽象类最大的区别就是,抽象类每个类只能扩展于一个类,而接口可以被多个类实现