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