- 每个enum类都继承了Enum类,因此无法再继承别的类,要扩展enum类可通过实现接口的方式;
- 如果enum类实现了某个接口,则认为每个enum实例实现了该接口,即每个enum实例是该接口的实现;
- enum实例有点普通类new出来的对象的意思,就是省去new了,而且对象的个数是确定的,就是enum实例的个数;
package chapter19._5;
import chapter15._3.coffee.Generator;
import java.util.Random;
enum CartoonCharacter implements Generator<CartoonCharacter> {
SLAPPY, SPANKY, PUNCHY, SILLY, BOUNCY, NUTTY, BOB;
private Random rand = new Random(47);
@Override
public CartoonCharacter next() {
return values()[rand.nextInt(values().length)];
}
}
public class EnumImplementation {
public static <T> void printNext(Generator<T> rg) {
System.out.println(rg.next());
}
public static void main(String[] args) {
CartoonCharacter cc = CartoonCharacter.BOB;
for (int i = 0; i < 10; i++) {
printNext(cc);
}
}
}
输出:
BOB
PUNCHY
BOB
SPANKY
NUTTY
PUNCHY
SLAPPY
NUTTY
NUTTY
SLAPPY