java的枚举类enum,定义静态变量还可以有抽象方法,但枚举类不能被继承


借鉴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 变量名; }

                       }


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM