静态代码块、构造代码块、构造函数、普通代码块,还傻傻的分不清?(下)

反编译生成的class文件:静态代码块、构造代码块、构造函数、普通代码块,还傻傻的分不清?(下)

执行结果:


静态代码块、构造代码块、构造函数、普通代码块,还傻傻的分不清?(下)

我们创建了两个匿名对象,但是静态代码块只是调用了一次。

6、父类和子类执行顺序

对象的初始化顺序:

首先执行父类静态的内容,父类静态的内容执行完毕后,接着去执行子类的静态的内容,当子类的静态内容执行完毕之后,再去看父类有没有构造代码块,如果有就执行父类的构造代码块,父类的构造代码块执行完毕,接着执行父类的构造方法;父类的构造方法执行完毕之后,它接着去看子类有没有构造代码块,如果有就执行子类的构造代码块。子类的构造代码块执行完毕再去执行子类的构造方法。

总之一句话,静态代码块内容先执行,接着执行父类构造代码块和构造方法,然后执行子类构造代码块和构造方法。

父类:SuperClass.java

静态代码块、构造代码块、构造函数、普通代码块,还傻傻的分不清?(下)


子类:SubClass.java静态代码块、构造代码块、构造函数、普通代码块,还傻傻的分不清?(下)

测试:

静态代码块、构造代码块、构造函数、普通代码块,还傻傻的分不清?(下)

打印结果:

静态代码块、构造代码块、构造函数、普通代码块,还傻傻的分不清?(下)

上一篇:手机游戏的线程和机体的控制以及手机模拟器的调试


下一篇:控制域名忘记续费,三星数百万台手机陷入“任人宰割”境地