Я столкнулся с трудностью при изучении 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 ограничены экземпляром. Есть ли у кого-нибудь объяснение этому?