栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java枚举可以继承吗(java枚举类型enum用法)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java枚举可以继承吗(java枚举类型enum用法)

枚举对应对应英文enumeration,简写为enum。

枚举是一组常量的集合,可以理解为:枚举属于一种特殊的类,里面只包含一组有限的特定的对象。

枚举实现的两种方式

1)自定义类实现枚举。

2)使用 enum 关键字实现枚举。

自定义实现枚举的步骤如下:

1、 构造器私有化, 目的防止直接 new。

2、 删除setXxx方法, 防止属性被修改。

3 、在Season内部, 直接创建固定的对象。

public class Enumeration01 {
    public static void main(String[] args) {
        System.out.println(Season.SPRING);
        System.out.println(Season.AUTUMN);
    }
}

class Season{
    private String name;
    private String desc;//描述

    //定义了 4 个对象, 固定
    public static final Season SPRING = new Season("春天","温暖");
    public static final Season WINTER = new Season("冬天","寒冷");
    public static final Season AUTUMN = new Season("秋天","凉爽");
    public static final Season SUMMER = new Season("夏天","炎热");

    //1、 构造器私有化, 目的防止直接 new。
    //2、 删除setXxx方法, 防止属性被修改。
    //3 、在Season内部, 直接创建固定的对象。
    //4、 可以加入 final 修饰符
    private Season(String name, String desc) {
        this.name = name;
        this.desc = desc;
    }

    public String getName() {
        return name;
    }

    public String getDesc() {
        return desc;
    }

}

小结 自定义类实现枚举:

1、 不需要提供 setXxx 方法,因为枚举类型对象值通常为只读。

2、枚举类对象/属性使用 final + static 共同修饰,实现底层优化。

3、枚举对象名通常全部使用大写,常量的命名规范。

4、 枚举对象根据需要,可以有多个属性。

有以下特点:

1)构造器私有化

2)本类内部创建一组对象【例如 : 四个春夏秋冬】。

3)对外暴露对象(通过为对象添加修饰符public final static 修饰)。

4)可以提供 get 方法,但是不要提供 set。

使用 enum 关键字实现枚举步骤如下:

1、 使用关键字 enum 来代替 class

2、直接使用SPRING("春天",”温暖“); 即 常量名(实参列表)。

3、如果有多个常量(对象),使用 逗号 进行间隔。

enum Season2{

    //1、 使用关键字 enum 来代替 class
    //2、直接使用SPRING("春天",”温暖“); 即 常量名(实参列表)。
    //3、如果有多个常量(对象),使用 逗号 进行间隔。
    //4、如果使用enum来实现枚举,要求将所定义的常量对象,写在最前面。
    SPRING("春天","温暖"),
    WINTER("冬天","寒冷"),
    AUTUMN("秋天","凉爽");

    private String name;
    private String desc;//描述

    private Season2(String name, String desc) {
        this.name = name;
        this.desc = desc;
    }

    public String getName() {
        return name;
    }

    public String getDesc() {
        return desc;
    }
}

使用enum关键字的注意事项:

1、当我们使用enum 关键字开发一个枚举类时,会默认继承Enum类,而且是一个final类 。

2、传统的 public static final Season SPRING = new Season("春天","温暖"); 简化成 SPRING("春天","温暖"); 这里必须知道,它调用的是哪一个构造器。

3、 如果使用无参构造器 创建 枚举对象,则实参列表和小括号都可以省略。

enum Season{
   SPRING;  // 等价于 SPRING();

   private Season{
   } 
}

4、当有多个枚举对象时,使用逗号间隔,最后一个使用分号。

5、枚举对象必须放在枚举类的行首。

注意:

1)使用 enum 关键字后,就不能再继承其他类了,因为enum 会隐式的继承Enum,而Java是单继承机制。

2)枚举类和普通类一样,可以实现接口,如下形式。

    enum 类名 implments 接口1,接口2{}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/775236.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号