黑马程序员技术交流社区
标题:
关于枚举类定义方法的问题请教大神们
[打印本页]
作者:
李国华
时间:
2014-1-16 20:06
标题:
关于枚举类定义方法的问题请教大神们
在学习张老师的视频时看到如下代码
<P> </P>
复制代码
其中在定义方法nextLamp()时,在元素之后定义了抽象方法 public abstract TrafficLamp nextLamp();此处是否是这样理解的,RED,GREEN,YELLOW作为TrafficLamp类的子类的对象,子类以内部类的形式继承父类TrafficLamp,重写了抽象方法nextLamp()。还有一个问题就是为什么一定要定义抽象方法public abstract TrafficLamp nextLamp();,而不是直接在内部类中定义方法
作者:
李国华
时间:
2014-1-16 20:09
代码是
public enum TrafficLamp{
RED(30){
public TrafficLamp nextLamp(){
return GREEN;
}
},
GREEN(45){
public TrafficLamp nextLamp(){
return YELLOW;
}
},
YELLOW(5){
public TrafficLamp nextLamp(){
return RED;
}
};
public abstract TrafficLamp nextLamp();
}
复制代码
作者:
够了没有
时间:
2014-1-16 21:11
(1)是实现了父类的抽象方法nextLamp(),因为父类是抽象的。
(2)我是这样理解的:
这个方法public abstract TrafficLamp nextLamp();本来就是父类的,只是没有实现而已,然后分别通过子类对象RED,GREEN,YELLOW来实现父类的这个方法。
作者:
孤独的天奇
时间:
2014-1-16 22:02
只有子类才清楚下一盏灯是什么颜色,所以讲方法抽象出来,交个子类去实现呀
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2