📜  如何在Java使用枚举实现接口

📅  最后修改于: 2021-10-28 02:55:10             🧑  作者: Mango

枚举用于在编程语言中表示一组命名常量。例如,一副扑克牌中的 4 个花色可能是名为 Club、Diamond、Heart 和 Spade 的 4 个枚举器,属于名为 Suit 的枚举类型。我们已经讨论了枚举的基础知识,它是如何在上一篇文章中声明的。在本文中,我们将了解枚举如何实现接口。

当方法参数只能从一小组可能值中获取值时,我们主要使用枚举,这意味着输入值是固定的,并且它从该固定值集中获取。 Java枚举类型是一种特殊的Java类,它可以像普通的Java类一样包含常量和方法,其中值是此类的唯一可能实例。该枚举扩展了抽象类Java.lang.Enum。考虑一种情况,当我们必须实现一些与给定对象或类的歧视性属性紧密耦合的业务逻辑时,我们将使用枚举实现接口。考虑一种情况,我们需要将两个枚举的值合并为一组并类似地对待它们,其中Enum 实现了 interface

由于枚举隐式扩展了抽象类Java.lang.Enum ,因此它不能扩展任何其他类或枚举,并且任何类都不能扩展枚举。所以很明显 enum 不能扩展或不能扩展。但是当需要实现多继承时,枚举可以实现任何接口,而在Java,一个枚举可以实现一个接口是有可能的。因此,为了实现可扩展性,遵循以下步骤:

  1. 创建一个接口。
  2. 创建接口后,通过 Enum 实现该接口。

以下是演示在枚举中实现接口的代码:

// Java program to demonstrate
// how an enum implements an
// interface
  
// Defining an interface
interface week {
  
    // Defining an abstract method
    public int day();
}
  
// Initializing an enum which
// implements the above interface
enum Day implements week {
  
    // Initializing the possible
    // days
    Monday,
    Tuesday,
    Wednesday,
    Thursday,
    Friday,
    Saturday,
    Sunday;
  
    public int day()
    {
        return ordinal() + 1;
    }
}
  
// Main Class
public class Daycount {
    public static void main(String args[])
    {
        System.out.println("It is day number "
                           + Day.Wednesday.day()
                           + " of a week.");
    }
}
输出:
It is day number 3 of a week.