在Scala中,受保护的函数是一种访问控制修饰符,它允许类的成员只能被该类的子类和伴生对象访问。受保护的函数在定义时,使用protected
关键字修饰。
以下是一个简单的示例:
class MyClass {
protected def myProtectedFunction(): Unit = {
println("This is a protected function.")
}
}
class MySubClass extends MyClass {
def accessProtectedFunction(): Unit = {
myProtectedFunction()
}
}
object Main {
def main(args: Array[String]): Unit = {
val mySubClass = new MySubClass()
mySubClass.accessProtectedFunction()
}
}
在这个示例中,MyClass
中的myProtectedFunction
函数被定义为受保护的,因此只能在MyClass
的子类MySubClass
中访问。MySubClass
中的accessProtectedFunction
函数调用了myProtectedFunction
函数,因此可以正常编译和运行。如果在Main
对象中尝试调用myProtectedFunction
函数,将会导致编译错误。
总之,受保护的函数是一种访问控制修饰符,它允许类的成员只能被该类的子类和伴生对象访问。这有助于保护类的内部实现,同时允许子类访问和使用这些成员。
领取专属 10元无门槛券
手把手带您无忧上云