Enums have no public constructor, values are public, static and final
Enums are Comparable and Serializable
Provieds fine methods: valueOf() , equals(), toString() , ordinal() and values()
Notes:
Enums are classes – As a result, you get type-safety, compile time checking, and the ability to use them in switch statement.
Enumerated types aren’t integers – each declared value is an instance of the enum class itself. This ensures type safety
No public constructor – This removes ability to create additional instances not defined at the compile time
Public static final – values cannot be overwritten, changed or otherwise messed with in ways that affect your programming logic. Enum self cannot be subclassed