黑马程序员技术交流社区
标题:
java 中可以用abstract修饰枚举类吗?
[打印本页]
作者:
王溢君
时间:
2013-3-20 02:01
标题:
java 中可以用abstract修饰枚举类吗?
枚举类也是一个类,当其中定义了一个抽象的方法时,为什么不用abstract修饰呢?
public enum TrafficLamp {
RED(30){
@Override
public TrafficLamp nextLamp() {
// TODO Auto-generated method stub
return GREEN;
}
},
GREEN(45){
@Override
public TrafficLamp nextLamp() {
// TODO Auto-generated method stub
return YELLOW;
}},
YELLOW(5){
@Override
public TrafficLamp nextLamp() {
// TODO Auto-generated method stub
return RED;
}
};
public abstract TrafficLamp nextLamp();//抽象方法
private int time;
private TrafficLamp(int time){this.time = time;}
}
复制代码
详细说明一下哈。
作者:
Alex shaw
时间:
2013-3-20 08:18
在张孝祥老师关于java加强的视频中,讲到过一个普通的类如何定义成枚举类
public abstract class Day {
private Day() {
}
/**
* 采用抽象类将大量的ifelse转换成一个个的独立的类
*/
public static final Day monday = new Day(){
@Override
public Day nextDay() {
return thusday;
}
};
public static final Day thusday = new Day(){
@Override
public Day nextDay() {
return null;
}
}
public Day getDay()
{
if(this == monday)
{
return monday;
}else
{
return thusday;
}
}
public String toString()
{
return null;
}
public abstract Day nextDay();
}
复制代码
其实枚举本质上就是一个抽象类,并且实例固定,构造函数固定,没法重新创建实例对象
建议你看下张孝祥老师关于java加强中枚举类的介绍 你就会明白了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2