Scala 2.11重写抽象类中的内容
正如我的标题所示,我有一个关于Scala覆盖的问题 现在我有以下几类/特点: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
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 { }