扒一扒: Java 中的枚举 (3)

在父类 java.lang.Enum 中, 也就只有 toString() 是没有使用 final 修饰啦, 要覆盖也只能覆盖该方法。 该方法的覆盖相信大家很熟悉, 在此就不做过多的讲解啦

4.4 实现接口

因为Java是单继承的, 因此, Java中的枚举因为已经继承了 java.lang.Enum, 因此不能再继承其他的类。

但Java是可以实现多个接口的, 因此 Java 中的枚举也可以实现接口。

定义接口

public interface TestInterface { void doSomeThing(); }

实现接口

public enum DirectionEnum implements TestInterface{ // 其他代码 public void doSomeThing() { System.out.println("doSomeThing Implement"); } // 其他代码 }

测试

@Test public void testImplement() { DirectionEnum.WEST.doSomeThing(); // 输出 doSomeThing Implement } 5 使用枚举实现单例

该方法是在 《Effective Java》 提出的

public enum Singlton { INSTANCE; public void doOtherThing() { } }

使用枚举的方式, 保证了序列化机制, 绝对防止多次序列化问题, 保证了线程的安全, 保证了单例。 同时, 防止了反射的问题。

该方法无论是创建还是调用, 都是很简单。 《Effective Java》 对此的评价:

单元素的枚举类型已经成为实现Singleton的最佳方法。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpzwgx.html