Membros protegidos de outras instâncias em Scala
Eu apenas tive uma dificuldade enquanto aprendia Scala. Eu tenho uma hierarquia de herança que é essencialmente equivalente a isso:
class A {
protected def myMethod() = println("myMethod() from A")
}
class B extends A {
def invokeMyMethod(a: A) = a.myMethod()
}
Mas, ao compilar esse exemplo, recebo o erro "test.scala: 7: error: method myMethod não pode ser acessado em A".
Vindo de Java, meu entendimento é que membros protegidos devem estar acessíveis a qualquer momento a partir de uma classe derivada e em nenhum lugar vi nada que me diga que os membros protegidos no Scala são limitados por instância. Alguém tem uma explicação para isso?