在委托事件模型中,源生成事件并把它发送给一个或多个监听器,每个监听器必须向事件源注册。
以下程序执行的结果是:
class X{
Y y=new Y();
public X(){
System.out.print("X");
}
}
class Y{
public Y(){
System.out.print("Y");
}
}
public class Z extends X{
Y y=new Y();
public Z(){
System.out.print("Z");
}
public static void main(String[] args) {
new Z();
}
}
YXYZ
这个题对我来说算是一道很有价值的题!
我以前误以为new Z();后,就仅仅的去执行Z的构造方法就退回来了,但实际是我格局小了。
当你new Z()后,会先看看有没有继承关系,
有的话会先跳转到父类里面,
到父类里面第一件事不是执行父类的构造方法
而第一件事是先去把父类中定义的成员变量初始化一边(依次顺着过一遍),等初始化成员变量之后才会去执行父类的构造方法,