一、接口

接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。

接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。

除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。

接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。另外,在 Java 中,接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。

1、接口使用步骤:

接口使用步骤:

  1. 接口不能直接使用,必须有一个“实现类”来“实现”该接口。
    格式:
    public class 实现类名称 implements 接口名称 {
    // …
    }
  2. 接口的实现类必须覆盖重写(实现)接口中所有的抽象方法。
    实现:去掉abstract关键字,加上方法体大括号。
  3. 创建实现类的对象,进行使用。

注意事项:

如果实现类并没有覆盖重写接口中所有的抽象方法,那么这个实现类自己就必须是抽象类。

interface java 声明和实现 java中interface的用法_抽象方法

2、接口默认方法定义:

存在一种情况,接口MyInterfaceDefault已经定义了,并且已经被类MyInterfaceDefaultA和类MyInterfaceDefaultB使用了,但后期需要对接口MyInterfaceDefault进行添加内容,由于接口的实现类必须对接口中的每一个方法进行重写,接口MyInterfaceDefault的改变会导致很多使用这个接口的实现类出现缺少重写方法的错误,因此这里的一种解决方法是使用:接口默认方法定义,从而解决接口升级的问题。

默认方法会被实现类继承下去。

interface java 声明和实现 java中interface的用法_抽象方法_02

3、接口的静态方法使用:

注意事项:不能通过接口实现类的对象来调用接口当中的静态方法。

正确用法:通过接口名称,直接调用其中的静态方法。

格式:接口名称.静态方法名(参数);

interface java 声明和实现 java中interface的用法_抽象方法_03

4、接口的常量使用:

interface java 声明和实现 java中interface的用法_默认方法_04

5、使用接口注意事项

  1. 接口是没有静态代码块或者构造方法的。
  2. 一个类的直接父类是唯一的,但是一个类可以同时实现多个接口。
    格式:
    public class MyInterfaceImpl implements MyInterfaceA, MyInterfaceB {
    // 覆盖重写所有抽象方法
    }
  3. 如果实现类所实现的多个接口当中,存在重复的抽象方法,那么只需要覆盖重写一次即可。
  4. 如果实现类没有覆盖重写所有接口当中的所有抽象方法,那么实现类就必须是一个抽象类。
  5. 如果实现类锁实现的多个接口当中,存在重复的默认方法,那么实现类一定要对冲突的默认方法进行覆盖重写。
  6. 一个类如果直接父类当中的方法,和接口当中的默认方法产生了冲突,优先用父类当中的方法。

6、使用例子:USB

interface java 声明和实现 java中interface的用法_抽象类_05


interface java 声明和实现 java中interface的用法_抽象方法_06


结果现象:

interface java 声明和实现 java中interface的用法_抽象方法_07