黑马程序员技术交流社区

标题: 内部类实现泛型元素对象,可是有一点不明。 [打印本页]

作者: 胡建彪    时间: 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