代码的执行顺序:
父类的静态→子类的静态→父类的实例→父类的构造方法→子类的实例→子类的构造方法
以下程序的执行结果: class X{ Y y=new Y();//1 public X(){//2 System.out.print("X"); } } class Y{ public Y(){//3 System.out.print("Y"); } } public class Z extends X{ Y y=new Y();//4 public Z(){System.out.print("Z"); }//5 public static void main(String[] args) { new Z(); } }
此题中没有静态成员和方法,故而不考虑静态的,
先执行父类的实例,即:
Y y=new Y();//1
class Y{ public Y(){ System.out.print("Y"); } }//3
生成Y;
然后执行父类的构造方法:
public X(){System.out.print("X"); }//2
生成X;
然后是子类的实例:
Y y=new Y();//4
class Y{ public Y(){ System.out.print("Y"); } }//3
生成Y;
最后是子类的构造方法:
public Z(){System.out.print("Z"); }//5
生成Z.
此题编译结果YXYZ