JAVA中interface的理解

interface和类有着紧密联系。如果把类比作熔融的铁水,那么接口就像一个先前做好的模具。让类实现这个接口,就是把铁水倒入模具,自然就实现了这个类的属性的规范。
因此,接口更像是一种规范,类是接口的一种具体逻辑实现。需要注意的是interface和class是同级的。接口声明了一组能力,但它自己并没有实现这个能力,它只是一个约定。
接口涉及交互两方对象,一方需要实现这个接口,另一方使用这个接口,但双方对象并不直接相互依赖,它们只是通过接口间接交互。
一个接口包含两部分:属性和方法。然而方法没有方法体,即不能实现方法(JAVA8之前),只能定义好方法的返回值和参数。接口方法不需要加修饰符,加不加都相当于是public abstract。属性只能声明静态常量(static修饰),且默认是静态常量。
那么如何实现接口呢?我们知道的是类可以实现接口,表示类的对象具有接口所表示的能力。因此通过类实现一个接口的方法是:public class 类名 implements 接口名{  }。

关键词是implements。 (注:一个类可以实现多个接口,表明类的对象具备多种能力,各个接口以逗号分隔,语法如下:public class 类名 implements Interface1,Interface2{主题代码 })
如何使用接口呢?与类不同,接口不能new,不能直接创建一个接口对象,对象只能通过类来创建。但可以声明接口类型的变量,引用实现了接口的类对象。比如:
Interface1 x = new Class1();或者采用:Class P = new Class();
P(interface1 参数变量){ }这样的方法。
有些时候系统已经写好了一些使用的接口,我们只需要调用就好了。它们一般在java.awt.event包里。在类的内部实现这个接口的方法时,查看其源代码,直接摘录到自己的程序中,没必要自己写或者去记它们。