首页 > 编程笔记 > Java笔记 阅读:46

Java接口的定义和使用(非常详细)

Java 中的接口是一种特殊的抽象类型,它使用关键字 interface 来定义。接口中可以包含抽象方法、常量(用 public static final 修饰的变量),以及默认方法和静态方法(从 Java 8 开始支持)。

接口的语法结构如下:
访问修饰符 interface 接口名称 {
    // 抽象方法
}

接口具有以下几个特点:
Java 程序中,接口有以下几个作用:

接口的实现方式

1) 接口的创建

接口使用关键字 interface 来定义。

【实例】创建接口 InterfaceDemo,代码如下:
public interface InterfaceDemo {
    // 静态常量
    int A = 10;
    // 抽象方法
    void demo();   // 可省略 public abstract
}
在上述代码中,关键字 interface 定义接口,在接口中编写抽象方法和静态常量,抽象方法 demo 可以不写关键字 abstract,在静态常量 A 中可以不写关键字 final static,直接定义就是常量。从 Java 8 以后的版本可以写默认方法和静态方法。

2) 类实现接口

使用关键字 implements,一个类可以实现一个或多个接口,并实现接口中所有的抽象方法。

【实例】创建接口 InterfaceDemo 和 InterfaceDemo02,创建类 InterfaceDemoTest,实现类实现接口的功能,代码如下:
public class InterfaceDemoTest implements InterfaceDemo, InterfaceDemo02 {
    // 重写 InterfaceDemo 接口的抽象方法
    @Override
    public void demo() {
        System.out.println("InterfaceDemo");
    }

    // 重写 InterfaceDemo02 接口的抽象方法
    @Override
    public void demo02() {
        System.out.println("InterfaceDemo02");
    }
}
在上述代码中,我们可以看出,实现接口使用的关键字是 implements。一个类可以实现一个或多个接口,并且将接口中的抽象方法全部重写。

3) 接口继承接口

一个接口可以使用关键字 extends 继承其他接口,继承后的接口包含父接口中的所有方法。

【实例】创建接口 InterfaceDemo,InterfaceDemo02 和 InterfaceDemo03,实现用接口继承接口的功能,代码如下:
public interface InterfaceDemo03 extends InterfaceDemo, InterfaceDemo02 {
    // 继承 InterfaceDemo 接口的抽象方法
    void demo();

    // 继承 InterfaceDemo02 接口的抽象方法
    void demo02();
}
在上述代码中,InterfaceDemo03 作为子接口,继承了接口 InterfaceDemo 和 InterfaceDemo02,接口 InterfaceDemo03 可以继承接口 InterfaceDemo 和 InterfaceDemo02 的全部方法。

我们可以看出,接口继承可以是单继承,也可以是多继承。但是,类只能是单继承,不能是多继承。

抽象类与接口的区别

抽象类与接口有以下区别:

相关文章