Java 和 Kotlin 中权限修饰符小结(长期更新)
Java 中
以下所说的情况排除内部类的情况。
- 类中的数据成员和成员函数据具有的访问权限包括:public、private、protected、default(包访问权限)
总结一下如图
作用域 | 当前类 | 同一 package | 子孙类 | 其他 package |
---|---|---|---|---|
public | ✅ | ✅ | ✅ | ✅ |
protected | ✅ | ✅ | ✅ | ❌ |
default | ✅ | ✅ | ❌ | ❌ |
private | ✅ | ❌ | ❌ | ❌ |
默认不写时,为 default .
- public: 所修饰的类、变量、方法,在内外包均具有访问权限;
- protected: 这种权限是为继承而设计的,protected所修饰的成员,对所有子类是可访问的,但只对同包的类是可访问的,对外包的非子类是不可以访问;
- 包访问权限(default): 只对同包的类具有访问的权限,外包的所有类都不能访问;
- private: 私有的权限,只对本类的方法可以使用;
- 类的访问权限包括: 包访问权限和 public
Kotlin
Kotlin 中的修饰符为 public、internal、protected、private. 其中 public 为默认修饰符,internal 和 Java 中 default 的语义是类似的,都表示对同包的类可见,外部不可见。