子类中的 Scala 合格受保护成员

Scala qualified protected member in subclass

Scala Language Spec.中我发现

一种不同形式的资格受到保护[this]。标有此修饰符的成员 M 称为对象保护的;它只能从定义它的对象内部访问。也就是说,选择 p.M 仅当前缀是 this 或 O.this 时才合法,对于包含引用的某些 class O。另外,不合格protected的限制适用.

但是我理解这个的情况 例如 this.protectedMember

但是我没有得到的是

O.this,对于一些 class O 附上参考 .

请帮忙..

然而,据我所知,这是与内部 class 相关的东西,就像我们在 Swing 中所做的那样,以获得外部 class 对象,例如 OuterClass.this.someMethod 在匿名内部 class.

The expression C.this is legal in the statement part of an enclosing class or object definition with simple name C. It stands for the object being defined by the innermost such definition.

例如你可以

class O {
  class I {
    // O.this is the instance of O this I instance is nested in
    def M = ...
    M // calls M in I
    O.this.M // calls M in O
  }

  protected[this] def M = ...
}