黑马程序员技术交流社区
标题:
枚举类内有抽象方法的问题
[打印本页]
作者:
adamjy
时间:
2014-4-22 01:35
标题:
枚举类内有抽象方法的问题
本帖最后由 adamjy 于 2014-4-22 12:36 编辑
枚举类有抽象方法,为什么枚举类不需要定义成抽象类型,代码如下
public enum TrafficLamp {
RED {
@Override
public TrafficLamp nextLamp() {
// TODO Auto-generated method stub
return null;
}
},
GREEN {
@Override
public TrafficLamp nextLamp() {
// TODO Auto-generated method stub
return null;
}
},
YELLOE {
@Override
public TrafficLamp nextLamp() {
// TODO Auto-generated method stub
return null;
}
};
public abstract TrafficLamp nextLamp();
}
复制代码
作者:
创造命运
时间:
2014-4-22 07:57
这也是我想知道的问题。
作者:
Mr.飞碍特
时间:
2014-4-22 08:29
使用enum定义的枚举类默认继承了java.lang.Enum类,而不是继承Object类。其中java.lang.Enum类实现了java.lang.Serializable和java.lang.Comparable两个接口。包含抽象方法的枚举类:
枚举类里定义抽象方法时无需显示使用abstract关键字将枚举类定义成抽象类,但因为枚举类需要显示创建枚举值,而不是作为父类,所以定义每个枚举值时必须为抽象方法提供实现,否则将出项编译错误,所以说不是没有,而是无需显示。
作者:
唐宋元明清
时间:
2014-4-22 09:18
我觉得,枚举如果有元素的话,那么就相当于创建了对象,创建对象的前提该类是非抽象的,所以必须覆盖掉抽象方法,覆盖掉抽象方法后,就不用在把枚举描述抽象了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2