对于访问控制符真是很多坑!= =
那么在学习的过程中遇到了一个 问题(就把这块再来补习一下
package private or private的区别:
其实package private 就是默认的default
1、类的权限修饰符有两个:public, or package-private (no explicit modifier).
当一个类申明为public时,它对任何地方的类都是可见的。
当一个类没有申明权限时,即默认设为package-private,它只对在自己的包内的所有类可见。
2、类中成员的权限修饰符有:public, private, protected, or package-private (no explicit modifier).
当成员申明为public时,它对任何地方的类都是可见的。
当成员没有申明权限时,即默认设为package-private,它只对在自己的包内的所有类可见。
当成员申明为private时,它只对本类是可见的。
当成员申明为protected时,除了对自己所在的包内所有类是可见的还对其他包内的本类的子类是可见的。(继承)
3、成员的权限修饰符访问权限
Modifier | Class | Package | Subclass | World |
---|---|---|---|---|
public | Y | Y | Y | Y |
protected | Y | Y | Y | N |
default | Y | Y | N | N |
private | Y | N | N | N |