1. 在枚举类型中申明一个抽象方法如apply()
2. 在特定的常量主体中用具体的方法覆盖抽象apply方法
public enum TestEnum {
PLUS {
double apply(double x, double y) {
return x + y;
}
},
MINUS {
double apply(double x, double y) {
return x - y;
}
},
TIMES {
double apply(double x, double y) {
return x * y;
}
};
abstract double apply(double x, double y);
}
注:抽象方式必须申明在所有枚举常量之后
这样实现的枚举类在之后的使用过程中每增加一个枚举常量就必须实现apply抽象方法,因为在枚举类型中的抽象方法必须被它所有常量方法中的具体方法所覆盖。
以上抽象方法还可以通过接口来实现:
public interface EnumInterface {
public double apply(double x, double y);
}
public enum TestEnum implements EnumInterface{
PLUS {
public double apply(double x, double y) {
return x + y;
}
},
MINUS {
double apply(double x, double y) {
return x - y;
}
},
TIMES {
public double apply(double x, double y) {
return x * y;
}
};
}