枚举的进一步深入,实现带有抽象方法的枚举,以交通灯为例,代码如下:
package com.jemsn.weekday;
public class test {
public static void main(String[] args) {
TrafficLamp red=TrafficLamp.Red;
System.out.println(red.NextLamp());
System.out.println("this time is "+red.Time);
}
public enum TrafficLamp{
Red(30){
public TrafficLamp NextLamp() {
return GREEN;
}
},
GREEN(45){
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;
}
}
}
输出的结果如下:
-------------------------------------------------------------------------------------------------
GREEN
this time is 30
-------------------------------------------------------------------------------------------------
上面的枚举TrafficLamp里实现了红 绿 黄 三种交通信号灯,并且用实现抽象方法来实现NextLamp下一个灯!个人感觉挺强打的!