1 public、protected、默认、private
访问级别 |
修饰符 |
同类 |
同包非子类 |
同包子类 |
不同包非子类 |
不同包子类 |
公开 |
public |
√ |
√ |
√ |
√ |
√ |
保护 |
protected |
√ |
√ |
√ |
- |
√ |
默认 |
无 |
√ |
√ |
√ |
- |
- |
私有 |
private |
√ |
- |
- |
- |
- |
2 static、final、abstract、volatile及其他
- 类的实例可以访问static和非static成员
- 类只能访问static成员
- final类不能被继承,如String
- final方法不能被覆盖
- final变量只能赋值一次,即只能在=号右边出现一次
- abstract类不能直接实例化
- 子类继承abstract类必需实现父类的abstract方法,除非子类也是abstract类
- 被volatile关键字用来保证每次线程取到的数据总是最新的
- 接口中所有方法都是public abstract的
- 接口中所有变量都是public static final的
- 枚举的构造方法都是private的
- 不能同时使用abstract和final修饰类或者方法
- 枚举可以实现接口,不可以继承其他类或者枚举
- 注解不能实现接口,也不能继承类,可以有成员方法,不能有成员变量