接口语法
public interface Demolnteface{
public void demo():
//其他方法
//所有方法都是抽象的
}
接口里放:
- 1.静态常量 (一般全部大写)
- 2.抽象方法(占大多数)
接口的特性
接口不可以被实例化
实现类必须实现接口的所有方法,否则实现类必须是抽象类
实现类可以实现多个接口,来弥补Java不能多继承
接口中的变量都是静态常量
如何使用接口?
编码实现:
一个类可以实现多个接口,多个接口使用,分隔。
接口是一种规范
体现在接口名称和注释上:
有些接口只有名称
方法的实现方式要通过注释来约定
面向接口编程
程序设计时面向接口的约定而不考虑具体实现
example:
做这项工作需要一个程序员 程序员是一种“能力”,不关心具体是谁 接口中的方法体现软件系统的功能 面向接口编程
程序设计时:关心实现类有何能力,而不关心实现细节 :面向接口的约定而不考虑接口的具体实现
接口的优点
可以被多继承
设计和实现完全分离
更自然的使用多态
更容易搭建程序框架
更容易更好实现
接口和抽象类的区别
本质区别:class和interface关键字不同。
抽象类是类,接口是规范。
接口可继承接口,并可多继承接口,但类只能单根继承
接口只能做方法声明,抽象类中可以做方法声明,也可以做方法实现
抽象类能够保证实现的层次关系,而接口则是能够更有效地分离行为与实现。