首頁 >Java >java教程 >為什麼我無法擴展 Java 枚舉類別以新增元素?

為什麼我無法擴展 Java 枚舉類別以新增元素?

Susan Sarandon
Susan Sarandon原創
2024-12-05 10:29:131038瀏覽

Why Can't I Extend Java Enum Classes to Add New Elements?

無法擴充枚舉類別以新增元素

Java 列舉是最終類,不能子類化。修改現有枚舉以新增元素是不可行的。 Java 枚舉設計可確保在編譯時明確已知所有可能的值。

考慮以下程式碼:

enum A {
  a,
  b,
  c
}

enum B extends A {
  d
}

雖然 B 可能擴展了 A 並添加了新元素 d ,這在 Java 中是不可能的。以新值擴充枚舉會導致不一致,因為 d 既是 A 的實例,也是 B 的不同值。

此外,枚舉的目的是定義一組固定的已知值。使用新元素擴充枚舉會破壞這個概念,並為只熟悉原始枚舉值的使用者帶來歧義。

不要擴展枚舉,而是考慮符合 Java 不變性和編譯原則的替代解決方案 -時間安全。例如,您可以使用所需的值建立新的枚舉,或使用組合來建立封裝枚舉並根據需要提供附加功能的類別。

以上是為什麼我無法擴展 Java 枚舉類別以新增元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn