接口概念
1、在java程序设计语言中,接口不是类,而是对类的一组需求描述,这些类要遵从接口描述的统一格式进行定义。
2、 接口可以包含多个方法,在接口中还可以定义常量。
3、接口不能含有实例域,在java SE 8之前,也不能在接口中实现方法。
4、提供实例域和方法实现的任务应该由实现接口的那个类来完成,
因此,可以将接口看成是没有实例域的抽象类。
接口的特性
1、接口不是类,尤其不能使用new运算符实例化一个接口
x = new Comparable(...); //ERROR
2、然而,能声明接口的变量;
Comparable x;
3、接口变量必须引用实现了接口的类对象:
x = new Employee(...);
4、如同使用instanceof检查一个对象是否属于某个特定类一样,也可以使用instanceof检查一个对象是否实现了某个特定的接口:
if (anObject instanceof Comparable){...}
5、与可以建立类的继承关系一样,接口也可以被扩展。这里允许存在多条从具有较高通用性的接口到较高专用性的接口的链。
例如,假设有一个称为Moveable的接口:
public interface Movable{
void move(double x,double y);
}
然后,可以以它为基础扩展一个叫做Powered的接口:
public interface Powered extend Movable{
double milesPerGallon();
}
6、在接口中不能包含实例域或静态方法,但却可以包含常量。
public interface Powered extend Movable{
double milesPerGallon();
double SPEEd_LIMIT = 95; // a public final constant
}