文本内容:
Java的枚举类与普通类的区别
1.可以实现一个或多个接口,使用enum定义枚举类默认继承java.lang.Enum类,而不是继承Object类其中java.lang.Enum类实现了java.Iang.Serializable和java.lang.Comparable两个接口2,使用enum定义,非抽象的枚举类默认会使用final修饰,因此枚举类不能派生子类
3.枚举类的构造器只能是private访问控制符,如果省略了构造器的访问控制符,则默认使用private修饰;如果强制指定访问控制符,则只能指定private修饰符
4.枚举类的所有实例必须在枚举类的第一行显示列出,否则这个枚举类永远都不能产生实例列出这些实例时,系统会自动添加public staticfinal修饰,无须程序员显示添加注意
1.枚举类可以有Field方法
2.枚举类可以继承接口实现接口的枚举类如果由枚举类来实现接口里的方法,则每个枚举值在调用该方法时都有相同的行为方式如果需要每个枚举值在调用该方法时呈现不同的行为方式,则可以让每个枚举值分别来实现该方法,每个枚举值提供不同的实现方式,从而让不同枚举值调用该方法时具有不同的行为方式Public enumGender implementsGeenderDesc〃继承一个接口,其中定义了一个info方法MALE“男”Public void infoSystem.out.println“这个枚举值代表男性”;},//注意这是个逗号FEMALE“女”Public voidinfoSystem.out.printin“这个枚举值代表女性”;};//结尾用分号}当创建MALE,FEMALE枚举值时,并不是直接创建Gender枚举类的实例,而是相当于创建Gender的匿名子类的实例包含抽象方法的枚举类Public enumGender{MALE“男”Public voidinfoSystem.out.pnntln“这个枚举值代表男性”;,//注意这是个逗号FEMALE“女”Public voidinfoSystem.out.printin“这个枚举值代表女性”;;//结尾用分号public abstractvoidinfo;枚举类里定义抽象方法时不能使用abstract关键字将枚举类定义成抽象类因为系统会自动添加abstract关键字,但因为枚举类需要显示创建枚举值,而不是作为父类,所以定义每个枚举值时必须为抽象方法提供实现,否则将出现编译错误。