Я только что столкнулся с трудностями при изучении Scala. У меня есть иерархия наследования, которая по существу эквивалентна этому:
class A {
protected def myMethod() = println("myMethod() from A")
}
class B extends A {
def invokeMyMethod(a: A) = a.myMethod()
}
Но, пытаясь скомпилировать этот пример, я получаю сообщение об ошибке «test.scala: 7: error: метод myMethod недоступен в A».
Исходя из Java, я понимаю, что защищенные члены должны быть доступны в любой момент из производного класса, и нигде я не видел ничего, что говорило бы мне о том, что защищенные члены в Scala ограничены экземпляром. У кого-нибудь есть объяснение этому?