在委托事件模型中,源生成事件并把它发送给一个或多个监听器,每个监听器必须向事件源注册。
以下程序执行的结果是:
- 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()后,会先看看有没有继承关系,
有的话会先跳转到父类里面,
到父类里面第一件事不是执行父类的构造方法
而第一件事是先去把父类中定义的成员变量初始化一边(依次顺着过一遍),等初始化成员变量之后才会去执行父类的构造方法,