一个接口就意味着一份合约。
An interface is a contract.
接口定义了这个类可以做什么,但是没有定义类具体会做什么。
接口的关键概念如下:
- 任何类都可以实现同一个接口。这使得不同的class可以被赋予一个共同的特性(characteristic)
- 接口是抽象的(abstract),如果你希望接口是public的可见性,那就要加上public的访问修饰符,否则就是default的
- 一个接口只能有abstract的method,这点和abstract类不同
- 接口所有的method含隐式修饰符public和abstract,不需要显式声明
- 接口只能继承其他的接口
- 既然接口的method都是abstract public,所以不能有静态方法(static method),也不能用 final,strictfp和native
- 所有变量只能是常量,而且含隐式修饰符 public, static和final,没有实例变量(instance variables)
- 那implement了接口的类做什么呢——所有这个接口的方法都要实现,并且是public的