枚举类默认是final修饰的,不能派生子类,但是
枚举类如果是抽象的,则其不是final修饰,可以派生子类,其子类为final修饰
枚举类包含匿名内部类,该父类不是final修饰,其内部类是final修饰
在今天的学习,我发现了枚举类enum是可以派生子类的,可是不是说enum为了不改变数据,使用final修饰的吗,于是我就自己试了试,首先使用正常没有派生子类的枚举类如下:
public enum AceEnum{
BOY("男孩"),GIRL("女孩");
private String gender;
private AceEnum(String gender){
this.gender = gender;
}
}
然后编译,并进行反编译:
可以看的出,在编译后,AceEnum枚举类已经是final类,那么按理说应该是不能派生子类的,可是,继续向下看。如果我们要为每个不同的枚举对象设置一个特定的方法,那么就需要应用的匿名内部类,为其实现相应方法,也就是改成下面的代码
public enum AceEnum{
BOY("男孩"){
public void show(){
System.out.println("我是男孩");