黑马程序员技术交流社区

标题: 关于抽象类实现枚举的问题 [打印本页]

作者: hollywood2014    时间: 2014-10-7 22:17
标题: 关于抽象类实现枚举的问题
这是看祥老师视频时突然碰到的一个问题,还请大家瞧瞧
  1. class Weekday
  2. {
  3.         private String name;
  4.         private Weekday(String name)
  5.         {
  6.                 this.name=name;
  7.         }
  8.          public static final Weekday MON=new Weekday("Monday");
  9.          public static final Weekday SUN=new Weekday("Sunday");
  10.          public Weekday nextday()
  11.          {
  12.                  if(this==MON)
  13.                          return SUN;
  14.                  else
  15.                          return MON;
  16.          }
  17.          public String toString()
  18.          {
  19.                  return this.name;
  20.          }
  21. }
复制代码
祥老师说的是用抽象类实现枚举

我上面的代码是有问题的,很大的问题
这是我自己想出来的,根据是enum中可以这样实现
  1. enum weekday{
  2.         SUN,MON(2),TUES,WES,THU,FRI,SAT;//静态成员变量,当类被调用是,静态成员变量自动调用其构造方法
  3.         private int number;
  4.         private weekday()
  5.         {
  6.                 //System.out.println("i have no number!");
  7.         }
  8.         private weekday(int i)
  9.         {
  10.                 this.number=i;
  11.                 System.out.println("my number is"+i);
  12.         }
  13.        
  14. }
复制代码
enum中的所有的静态实例变量可被看作weekday的子类,如SUN可以有他的私有field变量number

我的第一段代码就是根据这个想到的,但是不能实现,我想应该是
public static final Weekday MON=new Weekday("Monday");
public static final Weekday SUN=new Weekday("Sunday");
这连个句子的问题,可能涉及到什么理论上的问题
还请大家指教!







欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2