Java での Enum の継承
Musfirah Waseem
2023年10月12日
Java では、enum
(列挙の省略形) は固定定数値が設定されたデータ型です。 enum
キーワードを使用して、列挙データ型を宣言します。
enum
値を大文字で表すのが一般的な方法です。 Java では、すべての enum
クラスはデフォルトで final
です。
したがって、そこから異なるクラスを継承または派生させることはできません。
Java で enum
を使用する
enum Seasons { SUMMER, WINTER, AUTUMN, SPRING }
class Main {
public static void main(String[] args) {
System.out.println(Seasons.SUMMER);
System.out.println(Seasons.WINTER);
System.out.println(Seasons.AUTUMN);
System.out.println(Seasons.SPRING);
}
}
出力:
SUMMER
WINTER
AUTUMN
SPRING
上記のコードは、enum
データ型の機能を表示します。 enum
を使用すると、コードがより明示的になり、エラーが発生しにくくなります。
Enum
は、メニュー駆動型のプログラムで、またはコンパイル時にすべての可能な値がわかっている場合に広く使用されます。
Java enum
継承
enum Seasons { SUMMER, WINTER, AUTUMN, SPRING }
class Main {
class Weather extends Seasons {
public static void main(String[] args) {
// statements
}
}
}
出力:
Main.java:8: error: cannot inherit from final Seasons
class Weather extends Seasons {
^
Main.java:8: error: enum types are not extensible
class Weather extends Seasons {
^
enum
クラスを使用して別の機能クラスを派生させることはできないため、上記のコードはエラーを生成します。
enum
を使用してインターフェースを実装する
interface Weather {
public void display();
}
enum Seasons implements Weather {
SUMMER,
WINTER,
AUTUMN,
SPRING;
public void display() {
System.out.println("The season is " + this);
}
}
class Main {
public static void main(String[] args) {
Seasons.SUMMER.display();
}
}
出力:
The season is SUMMER
上記のコードでは、enum
クラスの Seasons
を使用して Weather
インターフェイスを実装しています。 enum
クラスを使用してインターフェイスを実装できるため、enum
クラス内に抽象メソッド display()
を記述しました。
著者: Musfirah Waseem
Musfirah is a student of computer science from the best university in Pakistan. She has a knack for programming and everything related. She is a tech geek who loves to help people as much as possible.
LinkedIn