实现接口的枚举类

一 点睛

枚举类也可以实现一个或多个接口。与普通类实现一个或多个接口完全一样,枚举类实现一个或多个接口时,也需要实现该接口所包含的方法。

如果需要每个枚举值在调用同一个方法时呈现出不同的行为方式,则可以让每个枚举值分别来实现该方法,每个枚举值提供不同的实现方式,从而让不同枚举值调用同一个方法时具有不同的行为方式。

二 实战

1 代码

GenderDesc.java

public interface GenderDesc
{
   void info();
}

Gender.java

public enum Gender implements GenderDesc
{
   // 此处的枚举值必须调用对应构造器来创建
   MALE("男")
   // 花括号部分实际上是一个类体部分,这部分代码的语法匿名内部类语法大致一样。
   {
      public void info()
      {
         System.out.println("这个枚举值代表男性");
      }
   },
   FEMALE("女")
   {
      public void info()
      {
         System.out.println("这个枚举值代表女性");
      }
   };

   private final String name;
   // 枚举类的构造器只能使用private修饰
   private Gender(String name)
   {
      this.name = name;
   }
   public String getName()
   {
      return this.name;
   }
   // 增加下面的info()方法,实现GenderDesc接口必须实现的方法
   public void info()
   {
      System.out.println(
         "这是一个用于用于定义性别的枚举类");
   }

   public static void main(String[] args)
   {
      Gender f = Gender.valueOf("FEMALE");
      Gender m = Gender.valueOf("MALE");
      f.info();
      m.info();

   }
}

2 运行

这个枚举值代表女性
这个枚举值代表男性

猜你喜欢

转载自blog.csdn.net/chengqiuming/article/details/92363998