使用关键字interface来定义一个接口
interface Printable{
final int MAX=100;
void add();
float sum(floa x,float y);
}
接口体中只有常量的声明和抽象方法两种,只有抽象方法没有普通方法。常量访问权限为public,而且是static常量,抽象方法为public。接口由类来实现使用接口中方法。一个类需要在类声明中使用关键字implements声明该类实现一个或多个接口。
class A implements Printable ,Addable
一个非抽象类实现某个接口,这个类必须重写这个接口中的所有方法,重写时去掉abstract一定要明显用上public修饰。
接口的多态指不同的类实现同一个接口时具有不同的实现方式。
接口回调:可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中,那么该接口变量就可以调用被类重写的接口方法。实际上,当接口变量调用被类重写的接口方法时,就是通知相应的对象调用这个方法。
接口可以抽象出重要的行为标准,该行为标准用抽象方法来表示。
可以把实现接口的类的对象的引用赋值给接口变量,该接口变量可以调用被该类实现的接口方法,即体现该类根据接口里的行为标准给出的具体行为。
如果一个方法的参数是接口类型,我们就可以将任何实现该接口的类的实例的引用传递给该接口参数,那么接口参数就可以回调类实现的接口方法。
接口和abstract类的比较如下:
1)abstract类和接口都可以有abstract方法。
2)接口中只可以有常量,不能有变量;而abstract类中即可以有常量也可以有变量。
3)abstract类中也可以有非abstract方法,接口不可以。