父类和子类的构造代码块问题,是通过子类的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("父类的构造方法调用");
}
}
你看看,看得懂吗?
这个就是继承啊,简单说吧。你的子类继承了父类,如果你是在初始化父类之前把子类初始化掉,那么它怎么去继承。它在父类初始化之前已经初始化结束了。