接口是什么?

来源:互联网 发布:iphone移动网络开关 编辑:程序博客网 时间:2024/06/06 18:07

正如你已经学习了的,每个对象通过它所暴露的方法来和外界交互。方法形成了对象和外界的接口,举例来说,电视机前面的按钮就是你和电视机塑料壳另一端的线圈的接口。你按下电源键就可以让电视机工作或者关闭。

最常见的,接口就是一组相关联的没有方法体的方法。如果将自行车的行为设计成一个接口,可能如下所示:

interface Bicycle {    //  wheel revolutions per minute    void changeCadence(int newValue);    void changeGear(int newValue);    void speedUp(int increment);    void applyBrakes(int decrement);}
如果想实现这个接口,你类的名字需要发生改变(举例来说,比如ACMEBicycle这个品牌的自行车),你需要在类的声明中使用implements关键字。

class ACMEBicycle implements Bicycle {    int cadence = 0;    int speed = 0;    int gear = 1;   // The compiler will now require that methods   // changeCadence, changeGear, speedUp, and applyBrakes   // all be implemented. Compilation will fail if those   // methods are missing from this class.    void changeCadence(int newValue) {         cadence = newValue;    }    void changeGear(int newValue) {         gear = newValue;    }    void speedUp(int increment) {         speed = speed + increment;       }    void applyBrakes(int decrement) {         speed = speed - decrement;    }    void printStates() {         System.out.println("cadence:" +             cadence + " speed:" +              speed + " gear:" + gear);    }}
实现了一个接口后,类可以更加正式地提供它的行为。接口形成了类与外界的协议,而且这个协议在编译时会被编译器强制校验。假如你的类声明了一个接口,如果它想成功的编译,那么接口中定义的所有方法都必须出现在它的代码中。

原创粉丝点击