1. 程式人生 > 其它 >學習 列舉類例項和它的匿名內部類例項的區別

學習 列舉類例項和它的匿名內部類例項的區別

/**
 * 列舉的例項注意點:
 *  1   提供類體部分時:該例項其實就是匿名內部類的例項比如SPRING,SUMMER
 *  2   沒有提供類體時該例項才是列舉類的例項.比如AUTUMN,WINTER.
 *
 * 檢視類的編譯,可以證明如上結論無論--->怎樣他們都統稱為列舉類的例項.
 *
 */
//測試: 列舉類例項和它的匿名內部類例項
public  class Test {

    public static void main(String[] args) {
        Reason.SPRING.now(); //現在是春天
        Reason.SUMMER.now(); //現在是夏天
        Reason.AUTUMN.now(); //現在是什麼季節???
        Reason.WINTER.now(); //現在是什麼季節???
    }
}
enum Reason{
    SPRING(){
        //SPRING該匿名內部類重寫父類的now方法
        @Override
        public    void now() {
            System.out.println("現在是春天");
        }
    },SUMMER() {
        //SUMMER該匿名內部類重寫父類的now方法
        @Override
     public    void now() {
            System.out.println("現在是夏天");
        }
    },AUTUMN,WINTER;

    public void now(){
        System.out.println("現在是什麼季節???");
    }
}