import java.util.ArrayList;
import java.util.List;
public class Color{
private String value;
private static Listcolors = new ArrayList ();
public Color(String value) {
this.value = value;
colors.add(this);
}
public static Color Red = new Color("red");
public static Color Blud = new Color("Blud");
public static Color Green = new Color("Green");
public void test(){
System.out.println("我是"+value);
}
public static Color[] values(){
return colors.toArray(new Color[colors.size()]);
}
public static void main(String[] args) {
Color.Red.test();
Color.Green.test();
ColorB.black.test();
for (Color c : ColorB.values()) {
c.test();
}
}
}
/**
* 子类
* @author 储宝
*
*/
class ColorB extends Color{
public ColorB(String value) {
super(value);
}
public static ColorB black = new ColorB("black");
}
枚举的伪实现。和枚举不同的是,还是可以new一个对象,本来是想把构造私有化的,但是就不能继承了。