通常来说,如果我们想访问类的一个属性或方法时,必须先new创建类的实例对象。
但有时候我们想在不创建类的实例对象的情况下,依然想要为特定域分配一定存储空间或依然想调用方法,就可以用static关键字。
1. static修饰的属性和方法随着类的加载而加载,所以早于实例对象产生,通过类名.属性/方法的方式访问;
2. static修饰的方法不能被重写,它是属于类的概念;
因为普通方法重写是基于运行时动态绑定的,而static方法是编译时静态绑定在类上的。
3. static的静态属性或方法不可以引用非static静态的,非静态的可以引用static静态或非静态的;
4. 静态成员变量虽然独立于对象,但是不代表不可以通过对象去访问,所有的静态方法和静态变量都可以通过对象访问(只要访问权限足够)。