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.
Enum
s 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 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