Java入门-接口

设计思想

  • 接口体现的是规范和实现分离的设计哲学,让软件系统的各组件之间面向接口耦合,是一种松耦合的设计。

  • 接口定义的是多个类共同的公共行为规范,这些行为是与外部交流的通道,意味着接口通常是定义一组公共方法。

定义

  • 接口的修饰符,只能是 public 或者 default。

  • 由于接口定义的是一种规范,所以接口里不能包含构造器和初始化块定义,只能包含静态常量、方法(只能是抽象方法,类方法和默认方法)以及内部类、内部接口、内部枚举。

  • 接口里的常量只能是静态常量,默认使用 public static final 修饰。

  • 接口里的内部类、内部接口、内部枚举,默认使用 public static 修饰。

  • 接口里的抽象方法不能有方法体,但类方法和默认方法必须有方法体。

方法说明

接口中定义抽象方法可以省略 abstract 关键字和修饰符,默认修饰符为 public。

Java 8 新增允许在接口中定义默认方法,使用 default 修饰。默认情况下,系统使用 public 修饰默认方法。

Java 8 新增允许在接口中定义私有方法。

Java 8 新增允许在接口中定义静态方法。静态方法可以被实现的接口的类继承。

使用

一个类可以实现一个或多个接口。

一个类实现一个或多个接口,这个类必须重写所实现的接口中的所有抽象方法。否则,该类必须被定义成抽象类,保留从父接口继承到的抽象方法。

接口不能用来创建实例,但是可以用于声明引用类型的变量,该变量必须指向实现该接口的类的实例对象。