public class Static04 { public static void main(String[] args) { bbb b1 = new bbb();//bbb类没有自己的普通代码块 // 输出顺序:(1)aaa类的构造器aaa()被调用。。。(2)bbb类的构造器bbb()被调用。。。 System.out.println("============================="); ccc c1 = new ccc();//ccc类有自己的普通代码块 //输出顺序:(1)aaa类的构造器aaa()被调用。。。(2)ccc类的普通代码块被执行。。。(3)ccc类的构造器ccc()被调用。。。 System.out.println("============================="); //这次父类ddd也有自己的普通代码块 eee e1 = new eee(); //输出顺序:(1)ddd类的普通代码块被调用。。。 //(2)ddd类的构造器ddd()被调用。。。 //(3)eee类的普通代码块被调用。。。 //(4)eee类的构造器eee()被调用。。。 } } class aaa{ public aaa(){ //super(); System.out.println("aaa类的构造器aaa()被调用。。。"); } } class bbb extends aaa{ public bbb(){ //super(); System.out.println("bbb类的构造器bbb()被调用。。。"); } } class ccc extends aaa{ {//c的普通代码块 System.out.println("ccc类的普通代码块被调用。。。"); } public ccc(){ //super(); System.out.println("ccc类的构造器ccc()被调用。。。"); } } class ddd{ public ddd() { //super(); System.out.println("ddd类的构造器ddd()被调用。。。"); } {//ddd类的普通代码块 System.out.println("ddd类的普通代码块被调用。。。"); } } class eee extends ddd{ public eee(){ //super(); System.out.println("eee类的构造器eee()被调用。。。"); } {//eee类的普通代码块 System.out.println("eee类的普通代码块被调用。。。"); } } /**总结: * (1)super(); * (2)调用本类的代码块 * (3)本类的构造器 */