Java 访问修饰符总结

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修饰类或者方法
  • 枚举可以实现接口,不可以继承其他类或者枚举
  • 注解不能实现接口,也不能继承类,可以有成员方法,不能有成员变量