假設我有以下特點和類延伸的特點我可以從Scala中的超類繼承訪問修飾符嗎?
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
}
我宣佈f
爲protected
在聲明T
,以便它可以從C
範圍內被調用,而不是別人。換句話說,C.f()
應該是一個編譯錯誤。我認爲T
的protected
修飾符會結轉,但它不會。
我可以在C
的聲明中重新聲明C.f()
爲protected
,但我寧願不必重複自己。有沒有其他的方式在Scala中做到這一點?