在 Java 接口中声明常量的目的是什么?

2022-09-03 02:10:23

规范指出,接口旨在定义类可以执行的操作的协定,并包含实现所需的一组方法。但与此同时,接口可能有常量。

出于什么目的,Java中允许这样做?

接口中存在常量的意义是什么,如何在接口中使用它们?据我所知,它们只能通过方法作为论据。但是我没有看到太多意义,因为接口没有说明类将如何实现其方法。


答案 1

常量也是接口的一部分。在设计中使用常量值来避免幻数,即对实现具有一定意义但似乎无处不在的数字。

在许多情况下,数值会影响代码的行为。例如,考虑 GUI 按钮的接口。这个按钮的实际绘制方式取决于实现;但是它是什么样的按钮是形成界面的合同的一部分:它是一个普通的按钮,有一个图像,还是一个复选框?可以使用 OR 值通常使用的常量修改此行为:例如,.int buttonType = PUSHBUTTON|IMAGEBUTTON


答案 2

这些常量可以在接口外部使用。

例如,它们可以由实现接口的类使用。如果实现类之间需要单个定义,这可能很有用。

例如,考虑一个接口,该接口定义了一些按位 OR 样式常量,这些常量可以在所有子类中一致地使用。只需要对这些定义进行单一定义,并且只需要学习一个集合。