抽象方法

    仅有声明而没有方法体:abstract void f();


接口

    interface关键词产生一个完全抽象的类,它根本就没有提供任何具体实现。它允许创建者确定方法名,参数列表和返回类型,但是没有任何方法体。接口只提供了形式,而未提供任何具体实现

    一个接口表示:"所有实现了该特定接口的类看起来都像这样"。因此,任何使用某特定接口的代码都知道可以调用该接口的哪些方法,而且仅需知道这些。因此,接口被用来建立类与类之间的协议。

    接口中的方法默认为public, 且只能为public。接口可以包含域,域隐式地是static和final的,所以在接口中定义域时,域名称一般为大写

    一个接口可以继承另外一个接口或多个接口

    在组成不同不同接口中使用相同的方法名通常会造成代码可读性的混乱,请尽量避免这种情况


接口与工厂

    接口是实现多重继承的途径,而生成遵循某个接口的对象的典型方式就是工厂设计模式。这与直接调用构造器不同,我们在工厂对象上调用的是创建方法,而该工厂对象将生成接口的某个实现的对象。理论上,通过这种方式,我们的代码将完全与接口的实现分离吗,这就使得我们可以透明地将某个实现替换为另一个实现。