Home  >  Article  >  Java  >  In Java, can an enumeration (Enum) extend any class?

In Java, can an enumeration (Enum) extend any class?

王林
王林forward
2023-09-01 15:57:091298browse

An enumeration (enum) in Java is a data type that stores a set of constant values. You can use enumerations to store fixed values ​​such as days of the week, months of the year, etc.

You can define an enumeration using the keyword enum followed by the enumeration name as shown below -

enum Days {
   SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY
}

Just like an array, in the above example, the elements/constants in the enumeration Identified using numbers starting from 0, as shown in the following image:

In Java, can an enumeration (Enum) extend any class?

# Enumeration classes are similar to classes in that you can have variables, methods, and constructors. Only concrete methods are allowed in enumerations.

Extension class

All enumeration classes will internally extend a class named Enum, which is the base class of all language enumeration types. Since Java does not support multiple inheritance, a compile-time error will be generated if you try to extend an enum class to another class.

Sample

In the following Java code snippet, we have a class called Sample and have created an enumeration type called Scooters and are trying to extend it to the Sample class.

import java.util.Scanner;
class Sample {
}
enum Scooters extends Sample {
}

Output

On executing, this class generates the following compile time error.
D:\>javac EnumExample.java
EnumExample.java:5: error: '{' expected
enum Scooters extends Sample{
              ^
EnumExample.java:5: error: ',', '}', or ';' expected
enum Scooters extends Sample{
                      ^
2 errors

The above is the detailed content of In Java, can an enumeration (Enum) extend any class?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:tutorialspoint.com. If there is any infringement, please contact admin@php.cn delete