>Java >java지도 시간 >새 요소를 추가하기 위해 Java Enum 클래스를 확장할 수 없는 이유는 무엇입니까?

새 요소를 추가하기 위해 Java Enum 클래스를 확장할 수 없는 이유는 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-12-05 10:29:131040검색

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

새 요소를 추가하기 위해 Enum 클래스를 확장할 수 없습니다.

Java 열거형은 최종 클래스이므로 하위 클래스로 분류할 수 없습니다. 새 요소를 추가하기 위해 기존 열거형을 수정하는 것은 불가능합니다. Java 열거형 설계는 가능한 모든 값이 컴파일 시간에 명시적으로 알려지도록 보장합니다.

다음 코드를 고려하세요.

enum A {
  a,
  b,
  c
}

enum B extends A {
  d
}

B가 A를 확장하고 새 요소 d를 추가하는 것처럼 보일 수도 있습니다. , 이는 Java에서는 불가능합니다. 새로운 값으로 열거형을 확장하면 d가 A의 인스턴스이자 B의 고유한 값이 되므로 불일치가 발생할 수 있습니다.

또한 열거형의 목적은 알려진 값의 고정된 집합을 정의하는 것입니다. . 새로운 요소로 열거형을 확장하면 이 개념이 약화되고 원래 열거형의 값에만 익숙한 사용자에게 모호성이 생길 수 있습니다.

열거형을 확장하는 대신 Java의 불변성 및 컴파일 원칙에 부합하는 대체 솔루션을 고려하세요. 시간 안전. 예를 들어, 원하는 값으로 새 열거형을 생성하거나 합성을 사용하여 열거형을 캡슐화하고 필요에 따라 추가 기능을 제공하는 클래스를 생성할 수 있습니다.

위 내용은 새 요소를 추가하기 위해 Java Enum 클래스를 확장할 수 없는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.