借鉴https://blog.csdn.net/qq_31655965/article/details/55049192

在此解释枚举类不能被继承的原因:它已经继承过父类Enum类了,且它的父类实现了serializable接口,即所有enum类都实现了序列化

 而enum类也不可以被继承,原因如下:

写法是:public enum 枚举类类名{变量列表用逗号隔开,最后一个变量后用分号结束; 可用函数列表  }

其实 枚举类本身就是  public final class 枚举类类名{变量列表的类型就是该类类型且也用到了final关键字};并且枚举类自带value(),valueof()函数和static{}静态代码块的声明/定义。

故变量列表中的变量可以写成三种方式:1.变量名。//相当于用枚举类类型定义一个静态变量

                  2.变量名(变量名对应值)。//用枚举类类型定义变量,但该枚举类有提供有私有参构造方法和私有变量用作参数,参数的值就是变量名对应的值

                  3.变量名(变量名对应值){静态代码块}//除2以外,该枚举类还定义了抽象方法,变量名的后的代码块相当于是实现抽象方法的匿名内部类。写法如同:变量类型 变量名 =new 枚举类类名(参数){@Override

                        public 枚举类类型 抽象类类名() {
                                return 变量名; }

                       }

posted on 2018-08-01 09:36  yicarro  阅读(8051)  评论(0)    收藏  举报