最近在做游戏的过程中发现一种这样传递对象的方式,以前几乎都是通过构造函数和new对方 产生的对象
现在如下:public abstract class A { B b;

public abstract void show();

}public abstract class B extends A{ A a ;

public B() {
this.initController(); //初始化,其顺序不能和下面的那句位置相反,否则空指针
a.b = this;  //这句极为模糊,为什么可以通过这样传递对象引用喃
}
public abstract void initController();}public class C extends A{ public void show() {
System.out.println("C--show");
}
}public class D extends B{

public static void main(String[] args) {
new D();
} public void initController() {
this.a = new C();
//this.b = new C();
this.show(); //结果D--show
this.a.show(); //结果C--show
}
public void show() {
System.out.println("D--Show");
}
}
哪个高手帮我分析下 那些比较难的几句啊.感谢了小弟: