1、私有(Private)成员
在嵌套类情况下,外层类甚至不能访问被嵌套类的私有成员。用 private 关键字修饰,带有此标记的成员仅在包含了成员定义的类或对象内部可见,同样的规则还适用内部类。
class Outer{
class Inner{
private def f(){println("f")}
class InnerMost{
f() // 正确, 在InnerMost里访问f没有问题,因为这个访问包含在Inner类之内。
}
}
(new Inner).f() //错误,因为f在Inner中被声明为private,而访问不在类Inner之内。
}
2、保护(Protected)成员
只允许保护成员在定义了该成员的的类和该类的子类中被访问
class Super{
protected def f() {println("f")}
println("Into Super");
f();
println("Out Super");
}
class Sub extends Super{
println("Into Sub");
f();
println("Out Sub");
}
class Other{
// (new Super).f() //错误
}
object Test {
def main( args: Array[String] ){
val a = new Sub
}
}
// 运行结果
Into Super
f
Out Super
Into Sub
f
Out Sub