Thông thường, vì chúng tôi đang làm việc trong java và thường đăng ký thiết kế OO, bạn có thể nhận được chức năng này thông qua tiện ích mở rộng. Tuy nhiên, enums mở rộng java.lang.Enum ngầm và do đó không thể mở rộng lớp khác.
Điều này có nghĩa là khả năng mở rộng cho enums được bắt nguồn từ một nguồn khác.
Joshua Bloch bổ sung điều này trong Java hiệu quả: Ấn bản thứ hai trong mục 34, khi anh trình bày mẫu giao diện dùng chung cho enums. Dưới đây là ví dụ của anh về mẫu:
public interface Operation {
double apply(double x, double y);
}
public enum BasicOperation implements Operation {
PLUS("+") {
public double apply(double x, double y) { return x + y; }
},
MINUS("-") {
public double apply(double x, double y) { return x - y; }
},
TIMES("*") {
public double apply(double x, double y) { return x * y; }
},
DIVIDE("/") {
public double apply(double x, double y) { return x/y; }
}
Đây là khoảng gần bạn có thể chia sẻ trạng thái khi nói đến enums. Như Johan Sjöberg đã nói ở trên, có lẽ chỉ đơn giản là dễ dàng kết hợp các enums vào một enum khác.
Chúc bạn may mắn!
tại sao bạn cần mở rộng enum? – Woot4Moo