接口通用形式
access interface name { return-type method-name1(parameter-list); return-type method-name2(parameter-list); type final-varname1 = value; type final-varname2 = value; // ... return-type method-nameN(parameter-list); type final-varnameN = value; }
access:public或者没有修饰符。
name:接口名,可以是任何合法的标识符。
接口声明中可以声明变量,一般是final和static型的,因此实现类中不能修改变量的值,必须以常量值初始化。当接口本身定义成public时,所有其方法和变量都是public的。
每个包含接口的类必需实现所有的方法。
接口的实现
access class classname [extends superclass] [implements interface [,interface...]] { // class-body }
规范:
1.access为public或无修饰符
2.如果一个类实现多个接口,这些接口将被逗号分隔。
3.实现接口的方法必须是public的
4.实现方法的类型必须与接口定义中指定的类型匹配。
5.类在实现接口时可以定义它自己的成员。
例子:
1.声明一个callback接口
interface Callback { void callback(int param); }
2.实现callback接口
class Client implements Callback { // Implement Callback’s interface public void callback(int p) { System.out.println(“callback called with “ + p); } void nonIfaceMeth() { System.out.println(“Classes that implement interfaces “ + “may also define other members, too.”); } }