Scala 2.11重写抽象类中的内容

Scala 2.11重写抽象类中的内容,scala,overriding,scala-2.11,Scala,Overriding,Scala 2.11,正如我的标题所示,我有一个关于Scala覆盖的问题 现在我有以下几类/特点: trait FSM {def transitionGraph:Map[String,(JsValue,FSM)] abstract class AClass: FSM { def transitionGraph } class Class extends AClass{ override def transitionGraph ... } <-- Wont work trait OverrideTrait e

正如我的标题所示,我有一个关于Scala覆盖的问题

现在我有以下几类/特点:

trait FSM {def transitionGraph:Map[String,(JsValue,FSM)]
abstract class AClass: FSM { def transitionGraph }

class Class extends AClass{ override def transitionGraph ... } <-- Wont work

trait OverrideTrait extends AClass { abstract override def transitionGraph } <-- works
class NewClass extends OverrideTrait { } <--- Works, I can use the overridden transitionGraph
这是不允许发生的吗


谢谢

您的代码示例无法编译。但一旦你纠正了一些事情,它应该会起作用:

trait FSM {def transitionGraph:Map[String,(JsValue,FSM)]}

abstract class AbstractClass extends FSM { def transitionGraph }

class ConcreteClass extends AbstractClass{ def transitionGraph = ??? }

val someClass: AbstractClass = new ConcreteClass

您给出的代码中似乎遗漏了很多内容,因此我不确定我是否理解这个问题,但这里有一些类似的东西可以编译:

trait FSM { def transitionGraph: String }
abstract class AClass extends FSM { def transitionGraph: String }

class Class extends AClass { override def transitionGraph = ??? }

trait OverrideTrait extends AClass { override def transitionGraph = ??? }
class NewClass extends OverrideTrait { }

这有什么帮助吗?

@MarcHPunkt是的,但要让它全部工作,它应该全部编译。你试过我在回答中写的吗?对你有用吗?我现在在工作。我一到家就试试:
trait FSM { def transitionGraph: String }
abstract class AClass extends FSM { def transitionGraph: String }

class Class extends AClass { override def transitionGraph = ??? }

trait OverrideTrait extends AClass { override def transitionGraph = ??? }
class NewClass extends OverrideTrait { }