作用域 | 当前类 | 同package中子类 | 同package中无关类 | 其它package的子类 | 其它package的无关类 |
public | √ | √ | √ | √ | √ |
protected | √ | √ | √ | √ | χ |
default(friendly) | √ | √ | √ | χ | χ |
private | √ | χ | χ | χ | χ |
总结:
1、在同package中,所有的类都能够访问某一个类中所有非private权限的方法或者属性。
2、一个package中的类不能通过继承访问另一个包中default权限的方法或者属性。换言之,子类在同一个package中可以访问default权限的方法或属性,子类不在同一个包中则不可以。
3、在不同package中子类是不能通过父类的实例访问protected权限的方法或者变量的。
private和public不必考虑,protected能适应的条件:当前类、子类和同一包下的类,而默认default:当前类和同一包下的类。