枚舉的進一步深入,實現帶有抽象方法的枚舉,以交通燈為例,代碼如下:
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下一個燈!個人感覺挺強打的!