在 Java 中Enum能实现接口吗?
是的,Enum 在Java中实现了一个接口,当我们需要实现与给定对象或类的区分属性紧密结合的某些业务逻辑时,它会很有用。一个枚举 是在添加了特殊的数据类型的Java1.5版本。枚举是常量,默认情况下,它们是static和final, 因此枚举类型字段的名称以大写字母表示。
示例
interface EnumInterface {
int calculate(int first, int second);
}
enum EnumClassOperator implements EnumInterface { //Enum 实现一个接口
ADD {
@Override
public int calculate(int first, int second) {
return first + second;
}
},
SUBTRACT {
@Override
public int calculate(int first, int second) {
return first - second;
}
};
}
class Operation {
private int first, second;
private EnumClassOperator operator;
public Operation(int first, int second, EnumClassOperator operator) {
this.first = first;
this.second = second;
this.operator = operator;
}
public int calculate() {
return operator.calculate(first, second);
}
}// Main 类
public class EnumTest {
public static void main (String [] args) {
Operation add = new Operation(20, 10, EnumClassOperator.ADD);
Operation subtract = new Operation(20, 10, EnumClassOperator.SUBTRACT);
System.out.println("Addition: " + add.calculate());
System.out.println("Subtraction: " + subtract.calculate());
}
}输出结果
Addition: 30 Subtraction: 10