权限大小:private < (default) < protected < public
private | (default) | protected | public | |
---|---|---|---|---|
本类 | √ | √ | √ | √ |
本包 | × | √ | √ | √ |
其他包下的子类 | × | × | √ | √ |
其他包非子类 | × | × | × | √ |
说明:
private:本类才能访问。
(default):本包下的才能访问。
protected:子类才能访问,无论同不同包。
public:公共访问,权限最大,无论同不同包,是不是子类都能访问。
使用规则:
1、属性通常使用 private 封装隐藏起来。
2、对外暴露方法一般使用 public 用于被调用。
3、会被子类继承重写的方法,通常使用 protected。
能用 private 就用 private,不行就放大一级,用 package(default),再不行就用protected,最后用 public。
一个原则:该暴露的就暴露,该隐藏的就隐藏。