Scala 公之于众
存在(我的代码之外) 我想要一个类Scala 公之于众,scala,protected,access-modifiers,Scala,Protected,Access Modifiers,存在(我的代码之外) 我想要一个类FooImpl,它扩展Foo,并使bar公开 我听说子类可以提高继承成员的可见性 我该怎么做 我试过了 class FooImpl extends Foo { override val logger = super.logger } 但我得到了一个错误: super may be not be used on value logger 您可以提高方法的可见性 当您以更广的可见性声明字段时,您可以声明新字段如果您将记录器设置为def而不是val,则该功能
FooImpl
,它扩展Foo
,并使bar
公开
我听说子类可以提高继承成员的可见性
我该怎么做
我试过了
class FooImpl extends Foo {
override val logger = super.logger
}
但我得到了一个错误:
super may be not be used on value logger
您可以提高方法的可见性
当您以更广的可见性声明字段时,您可以声明新字段如果您将
记录器
设置为def而不是val,则该功能将正常工作
trait Foo {
protected def logger = 0
}
class FooImpl extends Foo {
override val logger = super.logger
}
如果Foo
不是由您定义的,您可能在涉及反射的解决方案之外运气不佳
请参阅和。您不能反过来使用
def
吗<代码>覆盖def logger=super.logger?看起来不是这样吗?除非你的意思是让他们两个都去。
trait Foo {
protected def logger = 0
}
class FooImpl extends Foo {
override val logger = super.logger
}