父类和子类的构造代码块的问题

父类和子类的构造代码块问题,是通过子类的super()进入父类,然后调用父类的构造代码块
,然后父类的构造方法,再调用子类的构造代码块,然后子类的构造方法。这个是我的理解。
然而我们老师的理解是首先调用父类的所有的,然后调用子类的。但是他这样理解,到我们子类
构造方法的时候,调用前是不是应该先调用super();,然后再调用父类构造方法。这样我认为他
的理解都是错的。

老师是对的。继承呀。

public class ClassChildren extends ClassParent {

/** 
 * @Title:ClassChildren.java 
 * @Description:构造方法  
 */
public ClassChildren() {

    super();//首先调用父类构造方法,父类构造方法执行完了,再执行下面子类的构造方法,但是不属于父类调用子类,而是程序顺序执行到下面的代码

    System.out.println("子类构造方法开始调用");//这里是顺序执行调用的,不是父类调用的
    ///

    System.out.println("子类构造方法结束调用");
}

public static void main(String[] args) {
    new ClassChildren();
}

}

class ClassParent {

/** 
 * @Title:ClassParent.java 
 * @Description:构造方法  
 */
public ClassParent() {

    System.out.println("父类的构造方法调用");
}

}
你看看,看得懂吗?

这个就是继承啊,简单说吧。你的子类继承了父类,如果你是在初始化父类之前把子类初始化掉,那么它怎么去继承。它在父类初始化之前已经初始化结束了。