添加新的enum版本

1.version 2 通过在enum中设置abstract方法，强制enum中常量要实现相应的abstract方法。
2.version 3 重写toString方法，使得外部能访问symbol。