黑马程序员技术交流社区
标题:
内部类实现泛型元素对象,可是有一点不明。
[打印本页]
作者:
胡建彪
时间:
2012-9-22 11:01
标题:
内部类实现泛型元素对象,可是有一点不明。
public class Enum
{
public enum TrafficLamp // 内部类是有 4个修饰符的。
{ // 内部类 例如: new Date(500){} 子类构造方法 调用父类Date的有参构造函数。
RED(30){
//表示new子类的对象,并且调用父类的构造方法,然后用RED作为该子类对象的引用。
public TrafficLamp nextLamp()
{
return GREEN;
}
},
GREEN(45){
public TrafficLamp nextLamp()
{
return YELLOW;// 绿灯之后是黄灯。警告我们别再冲刺了。
}
},
YELLOW(5){
public TrafficLamp nextLamp()
{
return RED; // 幻灯之后是红灯。
}
};
public abstract TrafficLamp nextLamp() ;
private int time;
private TrafficLamp(int time)
{
this.time = time;
}
}
public static void main(String [] args)
{
TrafficLamp tl= TrafficLamp.GREEN; //定义一个枚举对象tl;
System.out.println(tl);
System.out.println(tl.nextLamp());
}
}
问题纠结在TrafficLamp tl= TrafficLamp.GREEN; //定义一个枚举对象tl;
此处的t1, 是TrafficLamp的对象还是 TrafficLamp 子类的对象?
也就等同于 枚举元素由内部类实现后,TrafficLamp.GREEN是一个TrafficLamp的对象还是一个 TrafficLamp子类的对象? 我思考是后面有 t1.nextLamp() 的调用,而nextLamp()是一个父类的抽象方法,只能有子类实现,调用,所以t1 是TrafficLamp子类的对象,TrafficLamp.GREEN 得到的TrafficLamp元素 GREEN已经成为了TrafficLamp子类的对象的引用。 求大虾们 ,指点江上,激扬文字。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2