Java接口

Java 7以前 接口中可以包含的内容:常量,抽象方法

Java 8 接口中额外可以包含的内容:默认方法,静态方法

Java 9 接口中额外可以包含的内容:私有方法

注意事项:

  1.接口当中的抽象方法,修饰符必须是public abstract,可以省略不写,默认就是

  2.接口不能直接使用,需要一个实现类实现该接口

  3.实现类必须实现(覆盖重写)接口中所有抽象方法,如果有一个或多个抽象方法没有实现,那么该类必须是抽象类

  4.接口中的常量必须使用public static final三个关键字进行修饰,可以省略不写,定义时必须赋值,否则报错(没有默认值),一旦赋值不可修改,通过接口名.常量名使用

  5.接口不能有静态代码块和构造方法

默认方法(解决接口升级问题,比如需要在接口中添加一个新的抽象方法,而添加后以前所有实现该接口的类都必须修改,去实现新的抽象方法):

  格式:public default 返回值类型 方法名(...) {...}

  接口的默认方法可以被接口的实现类直接调用,也可以被接口的实现类覆盖重写

静态方法:

  格式:public static 返回值类型 方法名(...) {...}

  不能通过接口实现类调用接口静态方法,而是通过接口名称调用接口静态方法,因为类可以实现多个接口,如果接口之间静态方法有相同,编译器就不知道该调用谁了

私有方法(解决接口中有方法体的方法(默认方法,静态方法)中重复代码问题。抽取重复代码,放在私有方法中,让默认方法或者静态方法调用):

  普通私有方法:解决多个默认方法之间重复代码问题

    格式:private 返回值类型 方法名称(...){...}

  静态私有方法:解决多个静态方法之间重复代码问题

    格式:private static 返回值类型 方法名称(...){...}

 

类与类之间是单继承的,一个类的直接父类只能有一个

接口与接口之间是多继承的,一个接口可以继承多个父接口。

类与接口之间是多实现的,一个类可以实现多个接口

注意事项:

  1.多个父接口当中的抽象方法如果重复,没关系

  2.多个父接口当中默认方法如果重复,那么子接口必须进行默认方法的覆盖重写,【而且带着default关键字】

posted @ 2019-12-21 16:33  糖不甜,盐不咸  阅读(292)  评论(0编辑  收藏  举报