接口是一种规范和标准,可以约束类的行为,是一些方法特征的集合,但是没有方法的实现,从这个角度讲,接口可以看作是一种特殊的“抽象类”但是采用与抽象类完全不同的语法来表示,两者的设计理念也是不同的,抽象类利于代码复用,接口利于代码的扩展和维护
接口的命名规则与类相同,如果修饰符是public,则该接口在整个项目中可见,如果省略修饰符,则该接口只在当前包可见
如果接口可以定义常量,不能定义变量,接口中的属性都会自动用public static final修饰,接口属性都是全局静态变量,接口中的变量必须在定义时指定初始值。
接口中所有方法都是抽象方法,接口中方法都会自动用public abstract修饰,接口中只有全局抽象方法
和抽象类一样,接口也不能实例化,接口中不能有构造方法
接口之间可以通过extends实现继承关系,一个接口可以继承多个接口,但接口不能继承类
接口的实现类必须实现接口的全部方法,否则必须定义为抽象类
一个接口只能有一个直接父类,但可以通过imlements实现多个接口,当类在继承父类的同时又实现了多个接口时,extends关键字必须位于implements关键字之前