标题: 有关枚举的疑问 [打印本页] 作者: 快乐的黑马 时间: 2014-1-7 20:09 标题: 有关枚举的疑问 在一般类中,如果有abstract这个修饰方法,那么类也要用abstract修饰。如:
public abstract class Test()
{
public abstract void show();
}
但今天我在看枚举时,里面定义了抽象方法,而类去不用abstract修饰,这是为为什么?代码如下:
public class Test
{
public enum TrafficLamp{
RED,GREEN,YELLOW;
public abstract TrafficLamp nextLamp();
}
}作者: 马富林 时间: 2014-1-7 21:56
楼主可以这样理解,枚举他是一种独立的形式,他和类、接口是并列的。你看接口里也都是抽象方法啊,但是我们定义一个接口也不需要在interface关键词前面加abstract.作者: 午夜b'Boy 时间: 2014-1-7 22:08
public class Test
{
public enum TrafficLamp{
RED,GREEN,YELLOW;
public abstract TrafficLamp nextLamp();
}
}
在这里,枚举是Test类中的内部类形式存在。抽象方法不是test类的成员方法作者: 松毛 时间: 2014-1-7 22:38
楼主应该是看的这段代码吧?你既然定义了nextLamp方法为抽象方法,那么它的对象肯定要覆盖该抽象方法,不然的话编译是通不过的。你应该没有看完老师后面的代码吧。