接口,某种特征的约定:
*定义接口 interface
所有的方法自动是public abstract
*实现接口implements
可以实现多继承
与类的继承关系无关
*面向接口编程,而不是面向实现
Flyable f = new Bird();
java中有大量的接口
接口的作用
*通过接口可以实现不相关类的相同行为,而不需要考虑这些类之间的层次关系。从而在一定意义上实现了多重继承
*通过接口可以指明多个类需要实现的方法
*通过接口可以了解对象的交互界面,而不需了解对象所对应的类
*一个接口可以有多个父接口,而一个类只有一个父类。子接口继承父接口的所有的常量和方法
接口类型
*接口可以作为一种引用类型来使用。任何实现该接口的类的实例都可以存储在该接口类型的变量中,通过这些变量可以访问类所实现的接口中的方法。java运行时系统动态地确定该使用那个类中的方法
*把接口作为一种数据类型可以不需要了解对象多对应的具体的类,以前面所定义的接口和实现接口的类为例: