【发布时间】:2014-07-04 11:39:23
【问题描述】:
我有一个名为 A 的类,它扩展了一个特征 X。 X 有一个抽象变量 x 已在类 A 中实现。类 A 使用 Trait X 中名为 foo 的函数之一。我正在尝试制作A 类的伴随对象,并在其中放入一些名为Ofoo 的“静态”方法。我的问题是Ofoo 使用foo。所以,我尝试做这样的事情:
trait X{
val x:String
def foo = {
//Full implementation here
}
}
case class A extends X{
val x = "barbaz"
// Class uses foo
}
object A extends X{
def Ofoo = {
//This also needs to use foo
}
}
我收到一条错误消息,指出对象 A 无法实例化,因为变量 x 未在特征 X 中定义。
我应该如何构造A 使其可以使用特征X 中定义的函数foo?
【问题讨论】:
-
你应该解释你真正想要完成的事情(你真正的问题,而不是它的抽象)。可能有一个简单的解决方案,但很难说我们是否真的不知道您要做什么。
标签: scala inheritance traits