Java での Enum の継承

Musfirah Waseem 2023年10月12日
  1. Java で enum を使用する
  2. Java enum 継承
  3. enum を使用してインターフェースを実装する
Java での Enum の継承

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 Waseem avatar Musfirah Waseem avatar

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

関連記事 - Java Inheritance