接口
接口
一个类中,所有的方法,都是抽象方法的时候,我们就可以为接口。
接口也是一种引用类型,它比抽象类还要抽象。表示一种规范,程序的扩展性。
格式:public interface 接口名{}
特点:
- 接口不能实例化
- 接口和类之间是实现关系,通过Implements关键字表示
public class 类名 implement 接口名{}
- 接口的子类(实现类):命名规范:如:接口Inter, 实现类名:InterImpl
- 要么重写接口中的所有抽象方法
- 要么是抽象类
注意:
- 接口和类的实现关系,可以单实现,也可以多实现
- public class 类名 implements 接口名1, 接口名2{}
接口中的成员变量:只能是常量 系统会默认加入三个关键字 public static final。
接口中没有构造方法,实现类中调用的是Object类的构造方法。
接口中的成员方法:
- 只能是抽象方法,系统会默认加入 public abstract
- JDK1.8 后的新特性:允许在==接口中定义非抽象方法,但是需要使用关键字default==修饰,这些方法都是默认方法。解决接口升级问题。
- 格式:
public default 返回值类型 方法名(参数列表){ }
- 实现类中可以对接口中的默认方法进行重写
- 如果多个接口中,有重名的默认方法,则实现类必须重写重名的默认方法。
- 接口中静态方法的定义格式
public static 返回值类型 方法名 (参数列表){}
- 注意事项:
- 静态方法只能通过接口名调用,不能通过实现类名或者实现类对象调用
- public可以省略,static不能省略
- 格式:
- JDK1.9后版本的新特点:允许在接口中定义private修饰的方法,该方法不需要外部类访问
- 格式:
private 返回值类型 方法名(参数列表){}
private static 返回值类型 方法名(参数列表){}
- 格式:
接口和接口的关系:可以是单继承,也可以多继承。继承中如果出现,来自父类接口有重名的方法,则子接口必须重写该方法