Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

Enum สามารถขยายคลาสใด ๆ ใน java ได้หรือไม่?


การแจงนับ (enum) ใน Java เป็นประเภทข้อมูลที่เก็บชุดของค่าคงที่ คุณสามารถใช้การแจงนับเพื่อเก็บค่าคงที่ เช่น วันในสัปดาห์ เดือนในหนึ่งปี เป็นต้น

คุณสามารถกำหนดการแจงนับโดยใช้คีย์เวิร์ด enum ตามด้วยชื่อของการแจงนับเป็น −

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

เช่นเดียวกับอาร์เรย์ องค์ประกอบ/ค่าคงที่ในการแจงนับจะถูกระบุโดยใช้ตัวเลขเริ่มต้นจาก 0 ในตัวอย่างข้างต้น วันจะถูกระบุโดยใช้ตัวเลขดังแสดงในภาพประกอบต่อไปนี้ -

Enum สามารถขยายคลาสใด ๆ ใน java ได้หรือไม่?

การแจงนับนั้นคล้ายกับคลาส และคุณสามารถมีตัวแปร เมธอด และคอนสตรัคเตอร์ภายในได้ อนุญาตเฉพาะวิธีที่เป็นรูปธรรมเท่านั้นในการแจงนับ

ขยายชั้นเรียน

การแจงนับทั้งหมดภายในขยายคลาสที่ชื่อ Enum เป็นคลาสพื้นฐานของประเภทการแจงนับภาษาทั้งหมด เนื่องจาก Java ไม่รองรับการสืบทอดหลายรายการ คุณจึงไม่สามารถขยายคลาสอื่นด้วยการแจงนับได้ หากคุณพยายามทำเช่นนั้น จะเกิดข้อผิดพลาดในการคอมไพล์ขึ้น

ตัวอย่าง

ในตัวอย่างจาวาต่อไปนี้ เรามีคลาสที่มีชื่อ Sample และเราได้สร้างประเภท Enum ชื่อ Scooters และพยายามขยายคลาส Sample

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

ผลลัพธ์

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