首先通过两个例子说明java中如何实现接口。
public interface MyInterface{
public static final int MAX=100; public abstract void method1(); public abstract void method2(); }
从上面可以看出,接口的定义和类的定义及其相似,只是关键字变成了interface, 如果仔细看,接口中的属性都是静态常量,方法都是抽象的。这样继承接口得类就要按照就要按照接口定义的规范来实现某种功能。这种继承在java中被称为实现。
public interface canswim{ void swim(); } public interface canjump{ void jump(); } public interface candive extends canswim,canjump{ void dive(); }
例子中定义了三个接口,可游泳接口,可跳跃接口和可跳水接口。接口canswim中并没有abstract修饰,这样的方法体会不会有问题呢?事实上,接口的定义了一种实现功能的规范,其中所有的方法都要是抽象的,因此其默认的就是抽象的和公开的。
接口其实就是一个方法的声明的集合,可以把接口比作一个协议,协议只是让你去做,但没说让你怎么去做,怎么去做应该是你自己去实现的,因为每个类的做法都有可能不同。