实现带有抽象、构造方法的枚举:
public enum TrafficLamp{
RED(30){
public TrafficLamp nextLamp(){
return GREEN;
}
},
GREEN(40){
public TrafficLamp nextLamp(){
return YELLOW;
}
},
YELLOW(5){
public TrafficLamp nextLamp(){
return RED;
}
};
public abstract TrafficLamp nextLamp();
private int time;
private TrafficLamp(int time){this.time =time;}
}
在这个例子中,枚举TrafficLamp的三个成员RED,GREEN,YELLOW先调用TrafficLamp的带有int类型参数的构造方法创建,再实现枚举中的抽象方法nextLamp(),RED,GREEN,YELLOW调用同一个nextLamp()方法,分别返回的是自己的下一个灯,即调用同一个方法返回不同的结果,是一个比较复杂的枚举。
|