Java中的接口

关于接口

接口就是多个类的公共规范。

接口是一种引用数据类型,最重要的内容就是其中的:抽象方法。

接口与父子类继承有相似之处,可以把接口中的内容交给“实现类”来实现,接口与父子类相比,更加灵活,一个“实现类”可以多实现多个接口,而在父子类中只能单继承,一个子类只有一个父类。

接口的定义格式

public interface 接口名称{
    //接口方法
}

接口中的内容
   

  • 如果是java7,那么接口中可以包含的内容有:

    1. 常量(必须使用public static final三个关键字修饰,可以省略不写,但是初学者不建议这样做,常量必须有赋值

    2. 抽象方法(有abstract关键字修饰

  • 如果是java8,还可以额外包含有:

    1. 默认方法(可以解决接口升级的问题,即已经有了接口的实现类以后,接口升级不会影响已经使用此接口的实现类
    2. 静态方法
  • 如果是java9,还可以额外包含有:

    1. 私有方法(接口中的私有方法用来作为两个方法的公有方法,解决两个方法之间代码重复的问题。但是这个方法不应该让实现类使用,应该是私有的。有普通私有方法与静态私有方法两种,分别解决多个默认方法之间代码重复的问题与多个静态方法之间代码重复的问题

接口的使用步骤
   

  1. 接口不能直接使用,必须有一个“实现类”来“实现”接口。

       格式:

public class 实现类名称 implements 接口名称 {
       //....
}
  1. 接口的实现类必须覆盖重写(实现)接口中所有的抽象方法,如果实现类没有全部覆盖重写,那么实现类必须是抽象类。

  2. 创建实现类的对象,进行使用。

实现类可以多实现多个接口

注意事项:
   

  1. 如果实现类实现的多个接口中,有重复的抽象方法,那么只需要覆盖重写一次即可。

  2. 如果实现类实现的多个接口中,有重复的默认方法,那么实现类必须要对重复的默认方法覆盖重写

  3. 一个类如果直接父类中的方法与接口中的默认方法产生了冲突,优先使用父类当中的方法,父类的优先级大于接口

接口与接口之间也可以多继承

注意事项:
   

  1. 多个父接口当中的抽象方法如果重复,没关系,因为在子接口当中本就要覆盖重写实现抽象方法。

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


更多接口的详细信息可以咨询查找。

  • 版权声明: 本博客所有文章除特别声明外,均采用 Apache License 2.0 许可协议。转载请注明出处!

请我喝杯咖啡吧~

支付宝
微信