【发布时间】:2013-10-09 11:28:26
【问题描述】:
假设我有以下特征和扩展该特征的类
trait T { protected def f() }
class C extends T { def f(): println("!") }
object Main extends App {
val c = new C
c.f() // should be a compile error
}
我在T 的声明中将f 声明为protected,以便可以从C 的范围内调用它,但不能被其他人调用。换句话说,C.f() 应该是编译错误。我以为 T 中的 protected 修饰符会继续使用,但事实并非如此。
我可以在C 的声明中将C.f() 重新声明为protected,但我不想重复自己。在 Scala 中有没有其他方法可以做到这一点?
【问题讨论】: