E125: Class Cannot Extend Enum — 클래스는 enum을 상속할 수 없어요
E125: Class Cannot Extend Enum — 클래스는 enum을 상속할 수 없어요
클래스가 enum을 상속하려고 할 때 발생하는 에러예요.
본문
클래스가 enum을 상속하려고 할 때 발생해요.
Scala 3에서 enum은 설계상 sealed라서, 같은 enum 선언 안에서 정의된 케이스들만 상속할 수 있어요. 외부 클래스는 enum을 상속할 수 없습니다.
예시
enum Color:
case Red, Green, Blue
class CustomColor extends Color
에러
-- [E125] Syntax Error: example.scala:4:6 --------------------------------------
4 |class CustomColor extends Color
|^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|class CustomColor in package <empty> extends enum Color, but extending enums is prohibited.
해결 방법
enum 정의 안에서 새 케이스를 추가하면 돼요.
// Add new cases within the enum definition
enum Color:
case Red, Green, Blue
case Custom(rgb: Int)
외부에서 확장이 필요하다면 sealed trait으로 바꾸는 방법도 있어요.
// Or use a sealed trait if you need external extensibility
sealed trait Color
object Color:
case object Red extends Color
case object Green extends Color
case object Blue extends Color
case class CustomColor(rgb: Int) extends Color