Wenn die Vererbung von Fallklassen verboten ist, wie kann dies dargestellt werden?

Ich versuche, die Fallklassen wie in @ beschrieben zu erstelleDieser Artike

sealed abstract case class Exp()
case class Literal(x:Int) extends Exp
case class Add(a:Exp, b:Exp) extends Exp
case class Sub(a:Exp,b:Exp) extends Exp

Ich erhalte jedoch die folgende Fehlermeldung in IntelliJ. Ich verstehe, warum es verboten ist Warum ist die Vererbung von Fall zu Fall in Scala @ verbote). Was ist der alternative Weg hierher?

Error:(2, 13) case class Literal has case ancestor A$A34.A$A34.Exp, but case-to-case inheritance is prohibited. To overcome this limitation, use extractors to pattern match on non-leaf nodes.
case class Literal(x:Int) extends Exp
           ^

Antworten auf die Frage(2)

Ihre Antwort auf die Frage