Java 中的接口类型

10 Sept 2024 | 4 分钟阅读

在 Java 中,接口在设定类契约和确保 Java 编程领域代码一致性方面至关重要。它通过概述实现类必须实现的若干方法,充当类的蓝图。开发者可以通过使用接口来实现代码的抽象、模块化和可维护性。本节将讨论Java 中的各种接口类型

标记接口

标记接口,也称为标签接口,是没有声明任何方法的接口。简单来说,它们充当标记,指示实现标记接口的类具有特定的属性或特征。Java 运行时环境和其他工具会利用这些 API 来提供额外功能或数据。Serializable、Cloneable 和 Remote 是 Java 中标记接口的一些示例。

函数式接口

作为 lambda 表达式和函数式编程改进的一部分,Java 8 中添加了函数式接口。具有恰好一个抽象方法的接口称为函数式接口。此外,还可以包含默认方法和静态方法。许多 Java 函数式编程功能,如 lambda 表达式和方法引用,都利用函数式接口。Predicate、Consumer、Function 和 Supplier 只是 java.util.function 包提供的内置函数式接口中的几个。

单一抽象方法 (SAM) 接口

在 Java 8 之前,函数式接口有一些称为 SAM 接口的类型。这些接口可以包含任意数量的默认方法或静态方法,但只有一个抽象方法。Runnable、Comparator 和 MouseListener 是一些包含 SAM 接口示例的 Java 8 之前的 API。随着 Java 8 中引入函数式接口,SAM 接口可以与 lambda 表达式一起使用,并被视为函数式接口。

普通接口

Java 中最常见的接口类型是普通接口。它们包含一个或多个抽象方法,实现接口的类必须实现这些方法。从 Java 8 开始,普通接口还可以包含默认方法和静态方法。开发者使用普通接口来指定类必须遵循的规则或要求。List、Set 和 Map,都位于 java.util 包中,是普通 Java 接口的示例。

多重继承接口

Java 允许类实现多个接口,但不支持多重类继承。通过类实现的接口,用于同时定义多个契约或继承行为,称为多重继承接口。通过实现多个接口,类可以提供每个接口所概述的功能。借助此功能,开发者可以重用代码并提高其想法的适应性。

下面是 Java 中每种接口类型的代码示例及其相应的输出

标记接口

MarkerInterfaceExample.java

输出

true

函数式接口

FunctionalInterfaceExample.java

输出

false
true

单一抽象方法 (SAM) 接口

SAMInterfaceExample.java

输出

Performing action

普通接口

NormalInterfaceExample.java

输出

Hello, World!

多重继承接口

MultipleInheritanceInterfaceExample.java

输出

Method 1
Method 2

这些示例演示了 Java 中不同类型接口的用法和行为。您可以单独运行每个代码片段来观察相应的输出。

总之,Java 接口提供了一种强大的方法来指定契约并实现代码的模块化。无论是表示特定特征的标记接口、实现函数式编程的函数式接口、定义契约的常规接口,还是组合多个契约的多重继承接口,接口都对 Java 开发至关重要。了解不同类型的接口及其功能,可以帮助 Java 开发者更好地构建清晰、可扩展的代码。