java中enum实现接口

网友投稿 306 2024-02-01


java中enum实现接口

我们之前提到在枚举中,可以实现java接口的操作。这里我们分为两种情况讨论,一种是单个接口,另一种是组织接口,也就是同时接入多个接口。下面我们就使用enum实现接口的注意点进行讲解,然后在实现单个接口和多个接口的两种情况,分别带来代码示例的展示。

1.说明

枚举类和普通类一样,可以实现一个或多个接口,枚举类实现接口分为两种情况。

注:

枚举可以实现接口,但不能继承;

枚举不能只实现接口的方法,还必要书写枚举中的量才可以。

2.实现接口(单个)

若枚举类的所有枚举对象在调用实现的接口方法时,呈现相同的行为方式,则只要统一实现该方法即可;此时与普通类实现接口一样,没有任何区别。

public interface Behaviour {       void print();       String getInfo();   }   public enum Color implements Behaviour{       RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4);       // 成员变量       private String name;       private int index;       // 构造方法       private Color(String name, int index) {           this.name = name;           this.index = index;       }   //接口方法       @Override       public String getInfo() {           return this.name;       }       //接口方法       @Override       public void print() {           System.out.println(this.index+":"+this.name);       }   }

3.使用接口组织枚举(多个)

若枚举类的每个枚举对象在调用实现的接口方法时,需要呈现出不同的行为方式,则可以让每个枚举对象分别来实现该方法。

public interface Show {     void show(); }   //使用enum关键字定义枚举类 public enum  Season2 implements Show{     //1.提供当前枚举类的对象,多个对象之间使用","隔开,末尾使用";"结束     //系统默认使用public static final修饰     SPRING("春天","鸟语花香"){         //每个枚举对象分别来实现该方法         @Override         public void show() {             System.out.println("春天是一个鸟语花香的季节!");         }     },     SUMMER("夏天","夏日炎炎"){         @Override         public void show() {             System.out.println("夏天是一个夏日炎炎的季节!");         }     },     AUTUMN("秋天","秋高气爽"){         @Override         public void show() {             System.out.println("秋天是一个秋高气爽的季节!");         }     },     WINNER("冬天","寒风瑟瑟"){         @Override         public void show() {             System.out.println("冬天是一个寒风瑟瑟的季节!");         }     };       //2.声明Season对象的属性,又因为枚举类对象的属性不应允许被改动, 所以应该使用 private final修饰     private final String seasonName;     private final String seasonDesc;       //3.枚举类的构造器只能使用 private 权限修饰符     // 私有化构造器是为了保证不能在类的外部创建其对象,否则就不能确定对象的个数     private Season2(String seasonName, String seasonDesc){         this.seasonName=seasonName;         this.seasonDesc=seasonDesc;     }       //其他需求:获取枚举类对象的属性     //只需要提供属性的get方法即可,但是不能提供set方法,而且也不允许提供set方法,因为枚举类是不可变的常量类,不能被修改     public String getSeasonName() {         return seasonName;     }       public String getSeasonDesc() {         return seasonDesc;     } }   public class SeasonTest {     public static void main(String[] args) {         Season2 spring = Season2.SPRING;         spring.show();           Season2 summer = Season2.SUMMER;         summer.show();           Season2 autumn = Season2.AUTUMN;         autumn.show();                  Season2 winner = Season2.WINNER;         winner.show();     } }

运行结果:

以上就是java中enum实现接口的两种情况讨论,在接口之前,我们要判断接口的数量,然后对应不同的情况使用enum的方法去解决。

Java编程技术

1、要求子系统的外部和内部通信必须通过统一的对象进行,门面模式提供高级接口,使子系统更容易使用。2、一般来说,就是设计一个类,专门用于对外服务,门面对象是外部访问子系统中唯一的通道。实例public class Fa ...


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:JAVA中接口的定义和实现的详细解析
下一篇:C#中如何实现多个接口
相关文章

 发表评论

暂时没有评论,来抢沙发吧~