【发布时间】:2016-04-04 18:09:52
【问题描述】:
我正在尝试做这样的事情:
trait A[Out] {
protected def foo(): Out
}
trait B extends A[Int]
class WrapperB(b: B) extends B {
override protected def foo(): Int = b.foo() + 1
}
这不会编译,因为WrapperB 无权访问b.foo()。
有几种方法可以解决这个问题,但这些方法对我不起作用:
- 将
foo公开:不会起作用,因为我希望它保留protected。 - 使用包范围:行不通,因为我打算在不同的包中包含许多
Bs。
还有其他方法吗?
【问题讨论】:
标签: scala inheritance access-modifiers