java的类加载顺序和创建对象时的调用顺序
类的加载顺序
有父子关系的类在加载时
先调用父类静态初始化块,静态属性,但不包括静态方法,然后再是,子类静态初始化块,静态属性,但同样不包括静态方法 。
创建对象的过程
先是父类非静态初始化块,非静态属性 ,再是父类构造函数,然后是子类非静态初始化块,非静态属性 ,最后是子类构造函数
运行结果
注意
(1)子类在继承父类后,若重写了父类的方法,那么父类中这个方法会被隐藏,但是可以通过在构造方法中用super显示调用。
(2)父类的静态方法是不能被继承的
(3)如果父类没有写出默认的无参构造方法但有写出有参的构造方法,那么在子类的构造方法中需显示调用父类的有参构造方法,不然会报错。
运行结果