接口(interface)
首先,介绍一下接口技术,这种技术主要用来描述类具有什么功能,而并不给出每个功能的具体实现。一个类可以实现(implement)一个或多个接口,并在需要接口的地方,随时使用实现了相应接口的对象。
概念
在java中,接口不是类,而是对类的一组需求描述,这些类要尊从接口描述的统一格式进行定义。
Arrays类中的sort方法承诺可以对对象数组进行排序,但要满足下列前提:对象所属的类必须实现了Comparable接口。下面是Comparable接口的代码:
public interface Comparable<T> {
public int compareTo(T o);
}
//
这就是说,任何实现Comparable接口的类都需要包含compareTo方法,并且这个方法的参数必须是一个Object对象,返回一个int类型数值。
接口中的所有方法自动地属于publuc. 因此,在接口中声明方法时,不必提供关键字public.
在接口中不可以定义成员变量
为了让类实现一个接口,通常需要一下两个不骤:
- 将类声明为实现某个接口,使用关键字implements
- 对接口中的方法进行定义。
接口的特性
接口不是类,尤其不能使用new运算符实例化一个接口。
然而,却可以声明接口类型的变量。接口变量必须引用实现了接口的类对象。
可以使用instanceof检查一个对象是否属于某个特定的类,也可以检查一个对象是否实现了某个特定的接口。
if(anObject instanceof Comparable){...}
接口可以被继承。
接口中可以可以包含常量,常量为自动设为public static final.
public interface MyInter {
int A=2;
double SPEED_LIMIT = 95;
}
每个类可以实现多个接口
class Employee implements Cloneable,Comparable