Scala では、オブジェクトとコンパニオン クラスを作成すると、オブジェクトがインポートされている場合、修飾子で宣言された識別子protected
にクラスからアクセスできます。
object Foo {
protected val X = 42
}
class Foo {
import Foo._
def getX(): Int = X
}
ただし、protected
クラス Foo のサブクラスから識別子にアクセスすることはできません。
class Bar extends Foo {
import Foo._
def getX(): Int = X * 2
}
でコンパイル時エラーが発生しBar
ます。
それ以外 (暗黙)public
に、コンパニオンのサブクラスからアクセスできるように配置できるアクセス修飾子はありますX
が、同じパッケージ内の他のクラスを含む他のクラスからはアクセスできませんか?