美文网首页
什么是接口

什么是接口

作者: 流星球 | 来源:发表于2017-08-15 09:28 被阅读0次

    翻译自ORACLE Java Tutorials –What Is an Interface?

    正如你已经学到的,对象通过他们公开的方法来定义与外部世界的交互。 方法形成物体与外界接口; 例如,电视机前面的按钮是您和塑料外壳另一侧的电线之间的接口。 按“电源”按钮打开和关闭电视机。

    在其最常见的形式,接口是一组与空机构相关方法。 如果指定为接口,自行车的行为可能如下所示:

    interface Bicycle {
    
        //  每分钟轮转
        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;
    
        // 编译器现在将需要这些方法
        // changeCadence,changeGear,speedUp和applyBrakes
        // 全部实现 如果该类中缺少方法,则编译会失败
        
    
        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);
        }
    }
    

    实现接口允许类对其承诺提供的行为变得更加正式。 接口在类和外部世界之间形成合约(contract ),并且该合约在编译器的构建时执行。 如果你的类声称实现一个接口,那么该接口定义的所有方法都必须在它的源代码中显示,然后类才能成功编译。

    注意:要实际编译ACMEBicycle类,您需要将public关键字添加到已实现的接口方法的开头。 稍后您可以在类和对象以及接口和继承的课程中了解原因。

    相关文章

      网友评论

          本文标题:什么是接口

          本文链接:https://www.haomeiwen.com/subject/sulmrxtx.html