Herencia en un Enum en Java

Musfirah Waseem 12 octubre 2023
  1. Usar enum en Java
  2. Herencia enum de Java
  3. Use una enumeración para implementar una interfaz
Herencia en un Enum en Java

En Java, una enumeración (forma abreviada de enumeración) es un tipo de datos con un conjunto de valores constante fijo. Usamos la palabra clave enum para declarar el tipo de datos de enumeración.

Es una práctica común representar los valores enum en mayúsculas. En Java, todas las clases enum son finales por defecto.

Entonces, no podemos heredar o derivar diferentes clases de él.

Usar enum en Java

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);
  }
}

Producción :

SUMMER
WINTER
AUTUMN
SPRING

El código anterior muestra la funcionalidad de un tipo de datos enum. El uso de enum puede hacer que cualquier código sea más explícito y menos propenso a errores.

Enums son ampliamente utilizados en programas dirigidos por menús o cuando conocemos todos los valores posibles en tiempo de compilación.

Herencia enum de Java

enum Seasons { SUMMER, WINTER, AUTUMN, SPRING }

class Main {
  class Weather extends Seasons {
    public static void main(String[] args) {
      // statements
    }
  }
}

Producción :

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 {
^

El código anterior produce un error porque una clase enum no se puede usar para derivar otra clase funcional.

Use una enumeración para implementar una interfaz

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();
  }
}

Producción :

The season is SUMMER

En el código anterior, estamos usando una clase enum, Seasons, para implementar la interfaz Tiempo. Como podemos usar una clase enum para implementar una interfaz, hemos escrito el método abstracto display() dentro de la clase enum.

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

Artículo relacionado - Java Inheritance