枚举类实现接口【精】

一、前言

枚举类和普通类实现接口一样吗?

二、枚举类实现接口

枚举类实现接口与普通类实现接口是一样的,都需要实现接口的抽象方法。

但是!!

枚举类 实现接口的同一个抽象方法,该抽象方法在枚举类不同对象实现不同的行为。如何实现那?

简单

只要在枚举类的每个对象都重写该方法就可以做到不同对象实现该抽象方法不同的行为。

三、枚举类实现接口实例

  • 先定义一个接口
/*** 定义一个接口*/
interface Info {void describe();
}
  • 创建一个枚举类实现该接口
/***  枚举类实现接口*/
public enum EnumImplement implements Info{  }
  • 重写接口的方法
/***  枚举类实现接口重写抽象方法*/
public enum EnumImplement implements Info{/***  需求:实现接口,在不同的对象实现抽象方法不同的行为。*  实现方法:将接口的抽象方法在每个对象中重写实现不同的行为*/SPRING("春天"){@Overridepublic void describe() {System.out.println("春江水阿暖鸭先知");}},SUMMER("夏天"){@Overridepublic void describe() {System.out.println("我爱山中夏,空冥花雨下。");}},AUTUMN("秋天"){@Overridepublic void describe() {System.out.println("停车坐爱枫林晚,霜叶红于二月花。");}},WINTER("冬天"){@Overridepublic void describe() {System.out.println("北国风光,千里冰封,万里雪飘。");}};
  • 枚举类实现接口完整实例

/*** 定义接口*/
interface Info {void describe();
}/***  枚举类实现接口的抽象方法*/
public enum EnumImplement implements Info{/***  需求:接口的抽象方法,在不同的对象实现不同的行为。*  实现方法:将接口的抽象方法在每个对象中重写实现不同的行为*/SPRING("春天"){@Overridepublic void describe() {System.out.println("春江水阿暖鸭先知");}},SUMMER("夏天"){@Overridepublic void describe() {System.out.println("我爱山中夏,空冥花雨下。");}},AUTUMN("秋天"){@Overridepublic void describe() {System.out.println("停车坐爱枫林晚,霜叶红于二月花。");}},WINTER("冬天"){@Overridepublic void describe() {System.out.println("北国风光,千里冰封,万里雪飘。");}};//申明 EnumTest 对象的属性final String name;//提供有参构造器EnumImplement(String name) {this.name = name;}// 获取类对象属性public String getName() {return name;}
}
  • 定义测试类,获取枚举类对象和对象属性
public class App {public static void main(String[] args) {//获取 EnumImplement 所有对象EnumImplement[] values = EnumImplement.values();for (EnumImplement v : values) {//获取对象属性System.out.println(v.getName());v.describe();}}
}
  • 获取枚举类对象及属性结果
春天
春江水阿暖鸭先知
夏天
我爱山中夏,空冥花雨下。
秋天
停车坐爱枫林晚,霜叶红于二月花。
冬天
北国风光,千里冰封,万里雪飘。

枚举类实现接口【精】相关推荐

  1. Java基础学习——Java网络编程(三)自定义枚举类、枚举类的常用方法、枚举类实现接口、枚举类的实际应用

    一.什么是枚举 枚举法:一枚一枚的列举出来,列举的元素是有限的.确定的. 例如:星期(一.二.三.四.五.六.日).性别(男.女).季节(春.夏.秋.冬) 在Java中的关键字为enum 二.枚举类的 ...

  2. desc 枚举类型id_枚举系列(四):实现接口的枚举类

    枚举类也可以实现一个或者多个接口.与普通实现一个或者多个接口完全一样,枚举类实现一个或者多个接口时,也需要实现该接口所包含的方法.下面程序定义了一个GenderDesc接口. public inter ...

  3. 【Kotlin】Kotlin enum 枚举类 ( 常用用法 | 初始化成员变量 | 实现抽象方法 | 实现接口 | 获取名称和位置索引 | 调用枚举常量方法 )

    文章目录 I . 枚举类常用用法 II . 枚举类初始化 III. 枚举类匿名类 IV . 枚举类实现接口 V . 获取枚举常量名称和位置索引 VI . 获取枚举常量的成员变量 VII . 调用枚举常 ...

  4. java枚举类型原理_Java枚举类接口实例原理解析

    这篇文章主要介绍了Java枚举类接口实例原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 枚举类可以实现一个或多个接口.与普通类实现接口完全一 ...

  5. mysql enum mybatis_Mybatis 枚举类处理

    类型处理器(TypeHandler) 无论是 MyBatis 在预处理语句(PreparedStatement)中设置一个参数时,还是从结果集中取出一个值时,都会用类型处理器将获取的值以合适的方式转换 ...

  6. 比起睡觉,我更喜欢刷巨详细的Java枚举类,这是来自猿人的自觉呀

    零基础学习之Java枚举类 概述 JDK1.5之前 创建枚举类 代码示例 JDK1.5之后 创建枚举类 代码示例 枚举类继承父类 基本介绍 代码示例 枚举类实现接口 基本介绍 代码示例 枚举类实现单例 ...

  7. 你连简单的枚举类都不知道,还敢说自己会Java???滚出我的公司

    枚举类型是Java 5中新增的特性,它是一种特殊的数据类型,之所以特殊是因为它既是一种类(class)类型却又比类类型多了些特殊的约束,但是这些约束的存在也造就了枚举类型的简洁性.安全性以及便捷性.当 ...

  8. 学妹问我Java枚举类与注解,我直接用这个搞定她!

    很多人问我学妹长什么样,不多说 上图吧! 学妹问我Java枚举类与注解,我直接一篇文章搞定! 一.枚举类 ① 自定义枚举类 ② enum关键字定义枚举类 ③ enum 枚举类的方法 ④ enum 枚举 ...

  9. java 枚举 注解_Java枚举类和注解梳理

    1. 枚举类 1. 枚举类的使用 枚举类的理解:类的对象只有有限个,确定的.我们称此类为枚举类. 当需要定义一组常量时,强烈建议使用枚举类. 如果枚举类中只有一个对象,则可以作为单例模式的实现方式. ...

  10. java枚举类型季节实例_Java之枚举类

    目录 一.为何引入枚举类型(为了替代魔法值) 什么是魔法值?魔法值有哪些隐患,见另一篇文章编码规约之使用Enum枚举类替代魔法值 那么为什么不用静态变量来替换魔法值呢? 有时候,变量的取值只在一个有限 ...

最新文章

  1. 特斯拉纯视觉FSD版本Bug频发!马斯克:不认真测试的车主就取消资格
  2. 未转变者空投指令服务器,未转变者空投指令 | 手游网游页游攻略大全
  3. 在账户确定类型KOFI没有找到总账科目
  4. 集成电路设计软件Tanner 16.30安装教程(附安装包)
  5. 为什么要用Vue.js的组件化开发
  6. .net中Task.WaitAll和WaitAny同步的等待Task完成
  7. python 模拟人生
  8. 知网论文[全PDF下载],从此告别CAJ阅读器
  9. 东北大学《铸造工艺学》结课报告
  10. TCC(TinyC)编译器汉化(中文编译器、汉语编程)之五:语法分析下
  11. 如何升级maven版本
  12. ODL框架项目搭建小试牛刀-demo篇
  13. 托福艺术导向(纪录片《文明》单词总结)PART1
  14. AI首席架构师6-AICA-从数据到知识-百度知识图谱技术及应用
  15. Python读取本地html文件内容存csv
  16. 4篇cvpr2021 轨迹预测论文
  17. 安徽泾县:如诗似画的桃花潭
  18. 毕设 JAVA JSP 简单的OICQ聊天程序论文
  19. 超级简单!Android旧手机也能搭建http服务器ksweb
  20. 【CYW20819】六、HCI接口控制

热门文章

  1. 第十届全国大学生GIS应用技能大赛上午(试题及参考答案)
  2. Uplift 经典模型介绍
  3. 智能营销模型-Uplift Model详解及Python使用
  4. 对OMAP-L138的PSC模块的理解
  5. java halt_System.exit和Runtime halt区别
  6. C++指针(pointer)
  7. 数组扁平化——flat方法理解
  8. 高级计算机网络(习题一加解析)
  9. FTP客户端(利用sun.net.ftp.FtpClient实现)
  10. linux上命令调用smplayer,Linux播放器——RedHat下MPlayer和SMPlayer的安装