一、静态方法和静态代码块
1、静态代码块是在项目启动的时候自动执行的代码块,且只被执行一次,不需要调用,常用来执行类属性的初始化;
静态方法是用static修饰的方法,不需要创建实例就可以用类名.方法名的方法进行调用。
2、静态方法中只能调用本类中的静态成员(包括静态变量和静态方法),而不能调用非静态成员。
原因是:非静态的成员变量只能在创建实例对象之后才能被调用,而在静态方法调用之前是不需要创建任何实例对象的。
3、静态方法也不能以任何方式使用this和super等关键字,因为在使用静态方法之前这些对象还没有被创建。
4、静态变量是属于某个类的变量,而不是属于某个对象的变量,不能将某个方法中的变量定义为静态变量。
二、实例化子类时代码的执行顺序
父类中的静态代码块-----子类中的静态代码块-----父类中的非静态代码块-----父类中的无参构造方法-----子类中的非静态代码块-----子类中的构造方法
PS:静态代码块优先执行----其次为父类中的非静态代码块和构造方法----最后才是子类中的非静态方法和构造方法
实例化子类时会先去父类中找无参构造方法,如果父类中没有该方法的话一定要在子类中用super方法调用父类中的带参构造方法。