JAVA修饰符
Java语言修饰符有两类:
- 访问修饰符
- 非访问修饰符
访问修饰
Java支持四种访问权限,用来保护对类、变量、方法和构造方法的访问:
- default:不使用任何修饰符;
- private:私有化变量和方法,只能在同类中可见,不能修饰类;
- public:对所有类可见;
- protected:对同一包内的类和所有子类可见,不能修饰类。
对于默认访问修饰符,其接口里的变量都隐式声明为public static final,而接口里的方法默认访问权限为public。
访问控制和继承
继承规则:
- 父类为public,子类中也必须为public;
- 父类中为protected,子类中要么为protected,要么public,不能为private;
- 父类中为private,不能被子类继承。
非访问修饰符
在此介绍几个常用的非访问修饰符:
static:用于修饰类方法和类变量,使其成为静态,也就是只创建一个;
final:用于修饰类常量,通常和static联用,如static final String name = “Zhang San”,修饰方法时其子类不能重写父类的final方法,修饰类时,此类不能被继承;
abstract:抽象类不能被实例化,其唯一目的是为了以后对该类进行扩充,修饰方法时该方法也不能被实现,其具体实现由子类来提供;
synchronized:声明的方法同一时间只能被同一个线程访问;
volatile:修饰的成员变量每次被线程访问时,都强制从共享内存中重新读取该成员变量的值。因此,相同线程总是会看到某个变量同一个值。