这题考得很复杂。注意,子类有重写了父类的add方法 先调用子类构造方法,走的super,进入父类的构造方法,对父类进行初始化,此时父亲的a就为10;父类构造方法中有add,调用了子类的add方法(重写)。此时,子类的a只进行了默认初始化,打印出0,再a++,打印出1。好了到这时,父类的构造方法走完...
一道JAVA编程题 为什么输出会是0 1 11?
这题考得很复杂。注意,子类有重写了父类的add方法
先调用子类构造方法,走的super,进入父类的构造方法,对父类进行初始化,此时父亲的a就为10;父类构造方法中有add,调用了子类的add方法(重写)。此时,子类的a只进行了默认初始化,打印出0,再a++,打印出1。好了到这时,父类的构造方法走完了,开始对子类进行初始化了,此时子类的a进行显示初始化变为了11。至此子类初始化完毕
现在懂了吗2017-03-14
public Demo(){
add();
}
初始化的时候,系统默认给出int的默认值02017-03-14