与Java不同,在Scala里protected的成员对于类所在包而言,是不可见的。
// A.scala
package com.jjk.protectedtest
class A {
protected def m1() : Unit = {
}
private[protectedtest] def m2() : Unit = {
}
}
// B.scala
package com.jjk.protectedtest
object B extends App {
var a = new A()
a.m1() // 编译失败
a.m2()
}