scala - 类:Scala修饰符

本文深入探讨Scala中的访问控制概念,详细解析私有(private)和保护(protected)成员的使用规则。通过具体代码示例,展示了如何在不同类和继承结构中正确应用这些访问控制修饰符。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值