- 从结果上看:子类可以使用父类中声明的方法,属性
- 从过程上:子类构造器直接或间接的调用父类的空参构造器,直到调用到Object类的空参构造器为止。
注意:加载父类的空参构造器并不是代表在堆中创建了一个父类对象,自始至终创建了一个子类 对象,只是加载了父类的方法和属性,以及代码块。
代码块:
作用:当对象初始化是调用代码块
静态代码块:随着类的加载而加载,可以对类的信息赋值。
非静态代码块:
对象的初始化顺序:首先执行父类静态的内容,父类静态的内容执行完毕后,接着去执行子类的静态的内容,当子类的静态内容执行完毕之后,再去看父类有没有非静态代码块,如果有就执行父类的非静态代码块,父类的非静态代码块执行完毕,接着执行父类的构造方法;父类的构造方法执行完毕之后,它接着去看子类有没有非静态代码块,如果有就执行子类的非静态代码块。子类的非静态代码块执行完毕再去执行子类的构造方法。总之一句话,静态代码块内容先执行,接着执行父类非静态代码块和构造方法,然后执行子类非静态代码块和构造方法