- 构造器
在需要有参数有参数构造器时,要自己把无参构造器写出来。 - 初始化块
初始化块在编译后会回到所有的构造器中。 初始化块、构造器 等的执行顺序:
package com.henry.day2.baseClass;class Root{ static{ System.out.println("root 的静态初始化快"); } { System.out.println("root 的普通初始化块"); } public Root(){ System.out.println("root 的无参数构造器"); } public Root(String str){ System.out.println("root 的有参数构造器" ); } } class Mid extends Root{ static{ System.out.println("mid 的静态初始化块"); } { System.out.println("mid 的普通初始化块"); } public Mid(){ System.out.println("mid 的无参数构造器"); } public Mid(String str){ this(); System.out.println("mid 的有参数构造器"); } } public class Leaf extends Mid { static{ System.out.println("leaf 的静态初始化块"); } { System.out.println("leaf 的初始化块"); } public Leaf(){ System.out.println("leaf 的无参数构造器"); } public Leaf(String str){ super(str); System.out.println("leaf 的有参数构造器"); } public static void main(String[] args) { new Leaf("test"); System.out.println("==========="); new Leaf(); } }
root 的静态初始化快
mid 的静态初始化块
leaf 的静态初始化块
root 的普通初始化块
root 的无参数构造器
mid 的普通初始化块
mid 的无参数构造器
mid 的有参数构造器
leaf 的初始化块
leaf 的有参数构造器
root 的普通初始化块
root 的无参数构造器
mid 的普通初始化块
mid 的无参数构造器
leaf 的初始化块
leaf 的无参数构造器