静态代码的执行顺序

    静态代码是和class绑定的,class装载成功就表示执行了你的静态代码了。而且以后不会再走这段静态代码了。

 

1 父类的静态代码块  2 子类的静态代码块  3 父类的构造函数  4 子类的构造函数

 

需要注意的地方:

 

1 子类的  构造函数  默认是  调用  父类的  无参构造函数。

 

2 如果  父类没有无参构造函数,则子类构造函数必须显式调用父类的构造函数。

如父类public Parent(String name){}

此时,子类中应该是这样调用public Child(String str){super(str);}

如父类public Parent()无参型的

此时,子类中应该这样调用public Child(String str){super();//也可以不写,默认的就是会调用super();}

 

一个例子:

public class Parent {
	static String name = "hello";
	{
		System.out.println("parent  block");
	}
	static {
		System.out.println("parent static block");
	}

	public Parent() {
		System.out.println("parent constructor");
	}
}

 

class Child extends Parent {
	static String childName = "hello";
	{
		System.out.println("child  block");
	}
	static {
		System.out.println("child static block");
	}

	public Child() {
		System.out.println("child constructor");
	}
}

 

public class StaticIniBlockOrderTest {
	public static void main(String[] args) {
		new Child();
		System.out.println("==============");
		new Child();
	}
}

 

执行结果为:

 

parent static block

child static block

parent block

parent constructor

child block

child constructor

==============

parent block

parent constructor

child block

child constructor

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值