接口是什么?

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

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

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);
    }
}
实现了一个接口后,类可以更加正式地提供它的行为。接口形成了类与外界的协议,而且这个协议在编译时会被编译器强制校验。假如你的类声明了一个接口,如果它想成功的编译,那么接口中定义的所有方法都必须出现在它的代码中。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值