Javaにおける列挙型の継承方法

Javaでは、enumクラスは継承できません。enumクラスはenumキーワードを使用して定義され、finalで、継承できないことを意味します。enumクラスのインスタンスは有限で固定されており、拡張または変更できません。

新しい列挙型クラスを他のクラスで定義し、元の列挙型クラスをそのプロパティとして定義することで、列挙型クラスを拡張できます。たとえば

public enum Color {
RED, GREEN, BLUE;
}
public enum ExtendedColor {
YELLOW, ORANGE;
private Color baseColor;
public ExtendedColor(Color baseColor) {
this.baseColor = baseColor;
}
public Color getBaseColor() {
return baseColor;
}
}

上記サンプルでは、ExtendedColor は追加で YELLOW と ORANGE という列挙値を持った新しい列挙型で、オリジナルの Color 列挙型の値を参照する baseColor プロパティも含まれています。このようにして列挙型を拡張することができます。

bannerAds