In Scala, wenn ich ein Objekt und Begleiter Klasse zu erstellen, erklärte Bezeichner mit dem protected
Modifikator kann aus der Klasse zugegriffen werden, wenn das Objekt importiert wird:Scala geschütztes Objekt
object Foo {
protected val X = 42
}
class Foo {
import Foo._
def getX(): Int = X
}
jedoch die protected
Kennung kann nicht sein, von einer Unterklasse der Klasse Foo zugegriffen:
class Bar extends Foo {
import Foo._
def getX(): Int = X * 2
}
ich einen Fehler bei der Kompilierung in Bar
bekommen.
Andere dann (implizit) public
, gibt es irgendeinen Zugriffsmodifizierer, den ich auf X
platzieren kann, damit auf Unterklassen seines Begleiters zugegriffen werden kann, aber nicht auf andere Klassen, einschließlich anderer Klassen im selben Paket?
Nur ein kleines Problem: Ihre Unterklasse ist in der gleichen Verpackung nicht immer. – Nicolas