我刚开始学习kotlin并且与受保护的访问修饰符混淆了我怀疑kotlin中私有和受保护访问修饰符之间的确切区别是什么。我在谷歌搜索但没有得到任何满意的答案。
正如官方documentatin所说:
private
仅表示在此类中可见(包括其所有成员);
protected
- 与private
相同+在子类中也可见;
来自Kotlin doc:
private - 表示仅在此类中可见(包括其所有成员);
protected - 与子类中的private + visible相同;
通过可见,这意味着可以访问或使用字段或方法。
与大多数OOP语言一样,Kotlin中有几个修饰符:
public
- 可以从项目的任何地方到达类,功能或财产。默认情况下,在Kotlin中,类,属性或函数是公共的
protected
- 只能通过当前的类子类访问类,函数或属性
private
- 只能在当前班级中访问类,功能或属性
internal
- 可以从当前模块中的任何位置访问类,函数或属性
查看this以获取详细说明。
如果您想了解受保护的概念,您需要对子类和继承有基本的了解。
可以从子类中看到具有受保护访问说明符的变量或函数。但私人将绑定课堂范围。
考虑这个基本代码:
open class Outer {
private val a = 1 // visible only for instance of class Outer
protected open val b = 2 // visible for instance of Outer and another subclass which inherits Outer.
val d = 4 // public by default
protected class Nested {
public val e: Int = 5
}
}
public class Subclass : Outer() {
// a is not visible
// b, d are visible
// Nested and e are visible
override val b = 5 // 'b' is protected
}
注意:上面的代码来自docs。
类和接口
对于在类中声明的成员:
private表示仅在此类中可见(包括其所有成员);
protected - 与子类中的private + visible相同;
internal - 此模块中看到声明类的任何客户端都会看到其内部成员;
public - 任何看到声明类的客户都会看到其公共成员。
protected
的项目在类和子类中可见private
的物品在课堂上可见protected
不适用)private
的项目在同一文件中可见