Java访问修饰符
Java的访问权限控制修饰符,从最大权限到最小权限依次是:public、protected、包访问权限(默认,没有关键字)和private。对于类的访问权限只能是:public和包访问权限(但内部类可以是private或protected的);对于类中的成员的访问权限可以是上述的四种。下面是各种访问权限的作用。
一、public修饰的类:
作用域
|
当前类 |
同一package普通类 |
其他package普通类 |
同一package子孙类 |
其他package子孙类 |
public |
√ |
√ |
√ |
√ |
√ |
protected |
√ |
√ |
× |
√ |
√ |
默认 |
√ |
√ |
× |
√ |
× |
private |
√ |
× |
× |
× |
× |
二、无修饰符(默认包访问权限)的类:
作用域
|
当前类 |
同一package普通类 |
其他package普通类 |
同一package子孙类 |
其他package子孙类 |
public |
√ |
√ |
× |
√ |
× |
protected |
√ |
√ |
× |
√ |
× |
默认 |
√ |
√ |
× |
√ |
× |
private |
√ |
× |
× |
× |
× |
其中,对于一个包里面的包访问权限类A,在其他package的类里面import类A的时候就已经出错了。所以,其他package普通类是根本就访问不了类A,其他package的类也成为不了类A的子孙类。