22-带抽象方法的枚举

来源:互联网 发布:数学建模算法与程序 编辑:程序博客网 时间:2024/05/20 21:48
package demo;import org.junit.Test;//带抽象方法的枚举public class DemoEnum {@Testpublic void Test() {print(Grade.A);}public void print(Grade g) {//String value = g.getValue();String value = g.localeValue();System.out.println(value);}/** * 该类相当于 * class Grade(){ * private Grade(){} * public static final Grade A=new Grade(); * public static final Grade B=new Grade(); * public static final Grade C=new Grade(); * public static final Grade D=new Grade(); * public static final Grade E=new Grade(); *  * } *  *  */enum Grade {A("100-90"){public String localeValue(){return "优";}}, B("89-80"){public String localeValue(){return "良";}}, C("79-70"){public String localeValue(){return "一般";}}, D("69-60"){public String localeValue(){return "差";}}, E("59-0"){public String localeValue(){return "不及格";}};private String value;private Grade(String value) {this.value = value;}public String getValue() {return this.value;}public abstract String localeValue();}}

 

枚举的构造方法必须是私有的,因为如果公有的话,就可以重新实例化对象。

原创粉丝点击