几乎没有用过枚举,不知道。

解决方案 »

  1.   

    抽象方法只能在抽象类中定义,你在其它地方定义抽象方法,那肯定是不行的了
      

  2.   

    如果你一个枚举类用abstract修饰,那么就需要有人继承他,而枚举是不能被继承的。因为Java规范定义了枚举并不是一个类,他更不是接口,所以他不能被继承或实现。
    因此,枚举不能用abstract修饰。你只能在每个枚举的实例实现这个抽象方法。
    比如:public enum Week{    Mon(){public boolean isWeekend(){return false;}},
        Tue(){public boolean isWeekend(){return false;}},
        Wed(){public boolean isWeekend(){return false;}},
        Thu(){public boolean isWeekend(){return false;}},
        Fri(){public boolean isWeekend(){return false;}},
        Sat(){public boolean isWeekend(){return true;}},
        Sun(){public boolean isWeekend(){return true;}};
        public abstract boolean isWeekend();
    }
    当然,枚举不能被继承,但是可以实现接口。
    比如:public enum Week implements IWeek{
        MON(){public boolean isWeekend(){return false;}},
        TUE(){public boolean isWeekend(){return false;}},
        WED(){public boolean isWeekend(){return false;}},
        THU(){public boolean isWeekend(){return false;}},
        FRI(){public boolean isWeekend(){return false;}},
        SAT(){public boolean isWeekend(){return true;}},
        SUN(){public boolean isWeekend(){return true;}};
    }interface IWeek{
     boolean isWeekend();
    }