Computer >> Máy Tính >  >> Lập trình >> Java

Enum có thể mở rộng bất kỳ lớp nào trong java không?

Enumeration (enum) trong Java là một kiểu dữ liệu lưu trữ một tập hợp các giá trị không đổi. Bạn có thể sử dụng bảng liệt kê để lưu trữ các giá trị cố định như ngày trong tuần, tháng trong năm, v.v.

Bạn có thể xác định một kiểu liệt kê bằng cách sử dụng từ khóa enum theo sau là tên của kiểu liệt kê là -

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

Cũng giống như mảng, các phần tử / hằng số trong một kiểu liệt kê được xác định bằng cách sử dụng các số bắt đầu từ 0 trong ví dụ trên, các ngày được xác định bằng cách sử dụng các số như thể hiện trong hình minh họa sau -

Enum có thể mở rộng bất kỳ lớp nào trong java không?

Các phép liệt kê tương tự như các lớp và bạn có thể có các biến, phương thức và hàm tạo bên trong chúng. Chỉ cho phép các phương pháp cụ thể trong một bảng liệt kê.

Mở rộng lớp học

Tất cả các kiểu liệt kê bên trong mở rộng một lớp có tên Enum là lớp cơ sở của tất cả các kiểu liệt kê ngôn ngữ. Vì Java không hỗ trợ đa kế thừa nên bạn không thể mở rộng một lớp khác với kiểu liệt kê nếu bạn cố gắng làm như vậy, lỗi thời gian biên dịch sẽ được tạo ra.

Ví dụ

Trong đoạn mã java sau, chúng ta có một lớp có tên Sample và chúng ta đã tạo một loại Enum có tên là Scooters và cố gắng mở rộng lớp Sample.

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

Đầu ra

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