我希望有一些从双重继承的抽象类继承的case对象。
object Main {
sealed abstract class A(a: Int)
sealed abstract class B(a: Int) extends A(a)
case object Foo extends B(a) { val a = 5 }
case class Bar(a: Int) extends A(a)
}
然而,该行
case object Foo extends B(a) { val a = 5 }
错误与
main.scala:5: error: not found: value a
case object Foo extends B(a) { val a = 5 }
如何修复我的代码?
1条答案
按热度按时间xzlaal3s1#
您需要为
B
的构造函数提供一个int值。这应该可以工作:在您的示例中,
Foo extends B(0)
也可以正常工作,因为B
不对a
参数执行任何操作。写入
B(a)
要求a
是在该作用域中定义的Int
值,但实际情况并非如此。所以这和写作是一样的: