本帖最后由 天地有我 于 2013-8-4 12:12 编辑
枚举类型中是可以定义抽象方法的,首先要清楚枚举类,枚举类比较特殊,枚举类中定义的每一个属性(默认是 public final static )都是枚举类型的一个实例(对象),而枚举类就是Class,是一个不可以被继承的final类,所以枚举类型既不可以被继承,也不可以被实现。但是枚举类和其它类一样可以继承普通类,抽象类,实现接口。所以当在枚举类中定义了抽象方法,而一个抽象类中的抽象方法必须被子类所复写,而枚举类不能被继承,但是枚举类中的每一属性都是枚举类的一个对象,所以在枚举类中定义了抽象方法的话,必须要在枚举类中的属性中复写定义在枚举类中的抽象方法。
public enum TrafficLamp
{
RED
{
public TrafficLamp nextLamp()
{
return RED;
}
},
GREEN
{
public TrafficLamp nextLamp()
{
return GREEN;
}
},
YELLOE
{
public TrafficLamp nextLamp()
{
return YELLOE;
}
};
public abstract TrafficLamp nextLamp();
//测试
public static void main(String[] args)
{
System.out.println(TrafficLamp.GREEN.nextLamp());
}
}
程序运行结果为,方法返回值:GREEN |